IE7的onclick setAttribute解决方法

| 我似乎无法获得:
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中工作,我尝试了所有可以在网上找到的解决方法,并且想知道是否有人可以提供帮助?     
已邀请:
        不要那样做。 而是通过调用
attachEvent
/
addEventListener
添加事件处理程序。     
        我知道我来晚了,但是这也使我烦恼了,我终于明白了。 要使IE在onclick事件期间执行动态生成的代码,请执行以下操作: 编写所有其他浏览器的代码:element.setAttribute(\“ onclick \”,object.varName + \“ method(\” + var + \“)\”); 使用自定义属性保存您的动态语句:element.setAttribute(\“ exec \”,object.varName + \“ method(\” + var + \“)\”); 创建一个匿名函数,以在单击元素时执行存储在自定义属性中的语句:element.onclick = function(){eval(this.exec); }; 对于在IE7浏览器模式下运行的IE9以及当前版本的Chrome和Firefox,这种方法适用于我。 需要注意的几件事: 首先,就我而言,我需要执行一个对象方法。为此,我需要知道对象的var名称,在启动类时将其设置为属性。所以object.varName属性是我在运行时代码中创建并设置的。 其次,\“ exec \”不是标准属性,这就是为什么它可以保存我要执行的字符串的原因。但是,只要使用非标准属性,就可以随心所欲地调用它。 第三,这是可行的原因:IE,或者至少是IE7,将只允许您将onclick事件设置为包含匿名函数。如果您分配对象的方法或包含以下内容的变量 一个函数,该函数在设置onclick属性时执行,而不是在实际单击元素时执行。就我而言,我无法构建匿名函数,因为变量在运行时会更改。因此,我改为动态构建一条语句,然后将其存储在元素的属性中。然后,onclick事件将执行存储在该属性中的任何语句。 干杯。     
        当我这样做时,就像梦一样工作:
if(navigator.userAgent.indexOf(\"MSIE 7.0\") != -1){

    document.getElementById(\"pb\").onclick = function(){ eval( this.onClick ); };
}
这样,只有ie7会看它。     

要回复问题请先登录注册