我似乎无法得到这个:
top.document.getElementById("clickThis").setAttribute("onclick", "tinyMCE.execCommand('mceInsertContent',false,'<div style=\"width: 600px; margin: 0 auto .5em;\" class=\"wp-caption alignnone\"><a href=\"<?php echo $full_image_path; ?>\" rel=\"lightbox\" title=\"View in lightbox\"><img class=\"alignnone\" src=\"<?php echo $full_width; ?>\" alt=\"<?php echo $value; ?>\" /></a><p class=\"wp-caption-text\"><?php echo $get_image->caption; ?></p></div>');");
要在IE7中工作,我已尝试过在网上找到的所有解决方法,并想知道是否有人可以提供帮助?
答案 0 :(得分:2)
不要那样做。
而是add an event handler致电attachEvent
/ addEventListener
。
答案 1 :(得分:1)
我知道我有点迟了,但这也让我感到害怕,我终于得到了它。
要让IE在onclick事件期间执行动态构建的代码,请执行以下操作:
这种方法适用于IE9在IE7浏览器模式下运行,以及当前版本的Chrome和Firefox。
有几点需要注意:
首先,就我而言,我需要执行一个对象方法。为此,我需要知道对象的var名称,我在启动类时将其设置为属性。所以object.varName属性是我在运行时代码中创建和设置的属性。
其次,“exec”不是标准属性,这就是它保存我想要执行的字符串的原因。但只要您使用非标准属性,就可以随意调用它。
第三,这就是为什么这样做的原因:IE,或者至少IE7,只允许你设置onclick事件来包含一个匿名函数。如果指定对象的方法或包含的变量 一个函数,该函数在设置onclick属性时执行,而不是在实际单击元素时执行。就我而言,我无法构建匿名函数,因为变量在运行时会发生变化。因此,我动态地构建一个语句,然后将其存储在元素的属性中。然后onclick事件执行该属性中存储的任何语句。
干杯。
答案 2 :(得分:0)
像梦一样工作:
if(navigator.userAgent.indexOf("MSIE 7.0") != -1){
document.getElementById("pb").onclick = function(){ eval( this.onClick ); };
}
这种方式只有ie7看着它。