在tridion组件中使用javascript的onclick命令
这是我试图修改和发布的组件中的代码 这是我想在组件中单击超链接时添加的代码在tridion组件中使用javascript的onclick命令,tridion,tridion-2011,tridion-content-delivery,Tridion,Tridion 2011,Tridion Content Delivery,这是我试图修改和发布的组件中的代码 这是我想在组件中单击超链接时添加的代码 Onclick=“var s=s_gi(s_account);s.linkTrackVars='eVar7';s.eVar7='optin.holidays';s.tl(this,'o',Email Signup | Holidays')” 当我尝试添加单引号时,渲染就会混乱。我试着用/“eVar7/”、/“eVar7/”、“eVar7”和'eVar7'但没有一个成功。然后我试了这个 Onclic
Onclick=“var s=s_gi(s_account);s.linkTrackVars='eVar7';s.eVar7='optin.holidays';s.tl(this,'o',Email Signup | Holidays')”
当我尝试添加单引号时,渲染就会混乱。我试着用/“eVar7/”、/“eVar7/”、“eVar7”和'eVar7'但没有一个成功。然后我试了这个
Onclick=“var s=s_gi(s_account);s.linkTrackVars=eVar7;s.eVar7=optin.holidays;s.tl(this,o,Email Signup | Holidays)”
和已渲染的链接,但它不起作用(未将值发送到Omniture)
所以我回到了基础,然后尝试添加此代码
<a title="Holidays" href="tcm:8-21734" onclick="alert(\'here\');"><img title="btn_email_sign_up" alt="btn_email_sign_up" src="tcm:8-23980"/></a>
这就是我在.aspx中得到的
<tridion:ComponentLink runat="server" PageURI="tcm:13-31055-64" ComponentURI="tcm:13-21734" TemplateURI="tcm:0-0-0" AddAnchor="false" LinkText="<img src='/Images/btn_email_sign_up_tcm13-23980.jpg' />" LinkAttributes="onclick='alert(\'here\');'" TextOnFail="true"/>
这就是我在萤火虫身上看到的
<a here\');'="" onclick="alert(\" href="/Email-Signup/Holidays.aspx"><img src="/Images/btn_email_sign_up_tcm13-23980.jpg"></a>
请让我知道,如果有人可以帮助,如果你需要的TBB呈现这个组件
Onclick=“var s=s_gi(s_account);s.linkTrackVars='eVar7';s.eVar7='optin.holidays';s.tl(this,'o',Email Signup | Holidays')”
提前感谢尝试更改此选项。tridion:href解析组件链接,img src发布图像
<a title="Holidays" tridion:href="tcm:8-21734" onclick="alert('here');"><img title="btn_email_sign_up" alt="btn_email_sign_up" src="tcm:8-23980"/></a>
对于CDA上的链接解析,组件“tcm:8-21734”需要在一个页面上,并且该页面需要发布。当链接解析成功时,链接将指向页面url(例如;structuregroupfolderpath/filename.html
)
这是Tridion链接上的文档
我试图重现你的问题,但对我来说一切似乎都很好。因此,我将描述我所拥有的,希望它能帮助您解决您的问题: 模式 我有一个包含以下字段的模式:
var s=s_gi(s_账户);s、 linkTrackVars='eVar7';
s、 eVar7='optin.holidays';s、 tl(此为“o”,电子邮件注册为“假日”)
注意,为了可读性,我刚刚在OnClick
值中添加了一个换行符。此换行符在原始XML中不存在
载重吨
接下来,我创建此DWT以输出链接:
同样,上述片段中的任何换行符都是为了可读性而添加的。我的Tridion系统中的DWT将所有这些都集中在一条线上
组件模板、页面模板和发布目标
我在设置为输出HTML片段的组件模板中使用此DWT。除了DWT之外,此组件模板仅包含默认的完成操作(当然在DWT之后)
我使用的页面模板是常规默认页面模板的副本,我刚刚将文件扩展名更改为aspx
我的发布目标的目标语言设置为ASP.NET
已发布的ASPX
所有这些步骤都会导致在我发布的ASPX页面中出现以下片段:
在这里,我也添加了一些换行符来略微提高可读性。在原始的ASPX页面中,整个块位于一行上
浏览器中的HTML
最后,这将导致浏览器中出现以下HTML:
我不确定是否触发了onclick
脚本,但我不认为这是您最初的问题。尽管在不同的层次上进行了大量的转义,但脚本最终还是以HTML格式结束——至少在我看来是这样
不要混合使用JavaScript和内容
但这留下了一个大问题:你们到底为什么要把JavaScript放在内容领域?这违反了将内容与代码分离的所有最佳实践,只意味着你正在为将来的维护问题做准备(例如,如果你想开始发送电子邮件怎么办?)
当然,点击分析软件跟踪的链接是一项有效的要求(事实上,从我记忆中起,这就是Tridion内容交付堆栈的一项功能)
但我建议以不同的方式实现它,例如简单地用特定的CSS类或HTML5数据属性标记每个链接:
如何将此JavaScript添加到HTML中?它是否在您的一个组件中?还是在DWT中?还是C#TBB?javascript在组件中。演示服务器上.aspx源代码的链接中有什么?谢谢Ram,但这对我来说不起作用。输出为。javascript警报已生效,但超链接已关闭。链接未得到解决。页面上有组件吗?页面是否已发布?是的,页面已发布,javascript工作正常,但链接已消失。链接代码是否仍存在于已发布的ASPX中?如果没有,您在发布目标上设置了什么目标语言?这个组件模板使用哪种输出语言?另外,请检查我更新的链接解析说明。我们所指的页面是您希望解析链接的页面。