2011-09-28 88 views
1

我使用这种脚本以评估在DOM注入我的javascript代码评估一个jQuery声明

function wilEval(source) { 

    if ('function' == typeof source) { 
    source = '(' + source + ')();' 
    } 
    var script = document.createElement('script'); 
    script.setAttribute("type", "text/javascript"); 
    script.textContent = source; 
    document.body.appendChild(script); 

    if (window.execScript) { 
     window.execScript(source); 
    } 

} 

它在IE等主流浏览器,但我的问题是被评估的代码是一个像这样的jQuery代码$("#<?php echo "utm".$thr_id; ?>").effect("highlight", {}, 1000);那么如何评估它像一个正常的JavaScript代码?谢谢

P.S. PHP的回声只是产生动态元素的id =)

+0

将php内联代码动态添加到DOM不会在服务器端执行。当PHP引擎服务器呈现页面时,当您处于客户端浏览器中时,执行<?php ...代码就太迟了。 – tonycoupland

回答

2

有一件事你可以做是使用globalEval()

function wilEval(source) { 

    if ('function' == typeof source) { 
    source = '(' + source + ')();' 
    } 


    if (window.execScript) { 
    var script = document.createElement('script'); 
    script.setAttribute("type", "text/javascript"); 
    script.textContent = source; 
    document.body.appendChild(script); 
    window.execScript(source); 
    }else{ 
    jQuery.globalEval(source); 
    } 

} 
+0

我可以使用这个外部的JS文件?无论如何,我将用这个代码制作的JS文件包含在一个包含jquery文件的html文件中。 –

0

所以,你的代码是不是一个函数,而是一个statement

然后,把它包这样的:

(function() { YOUR STATEMENT }()); 
+0

你能举个例子吗?如何包装它?谢谢=) –