我怎样才能得到这个eval()函数调用IE浏览器的工作?
-
20-08-2019 - |
题
我有一些JavaScript代码熄灭,并获取另一个XHTML页面上的一个javascript“类”。远程的JavaScript看起来像下面这样:
(function() {
this.init = function() {
jQuery("#__BALLOONS__tabs").tabs();
};
})
这是取入this.javascript后,我尝试EVAL它和实例:
this.javascript = eval("(" + this.javascript + ")");
this.javascript = new this.javascript();
this.javascript.init();
当然,这完全在除IE所有浏览器。在IE中,它未能在EVAL线。有没有人对我怎样可以使IE或替代这一工作的建议。
谢谢,皮特
解决方案
你试过:
eval("this.javascript = (" + this.javascript + ")");
...
其他提示
此曾与良好的浏览器和坏的(这意味着即):
var code_evaled;
function eval_global(codetoeval) {
if (window.execScript)
window.execScript('code_evaled = ' + '(' + codetoeval + ')',''); // execScript doesn’t return anything
else
code_evaled = eval(codetoeval);
return code_evaled;
}
享受
(EVAL是不是在IE物体的方法)。那么该怎么办?答案结果是,你可以使用一个专有的IE方法window.execScript到EVAL代码。
function loadMyFuncModule(var stufftoeval) {
var dj_global = this; // global scope reference
if (window.execScript) {
window.execScript("(" + stufftoeval + ")");
return null; // execScript doesn’t return anything
}
return dj_global.eval ? dj_global.eval(stufftoeval) : eval(stufftoeval);
}
如果最坏真正涉及到最坏的情况,这样的事情可能工作:
var self = this;
funcid = "callback" + Math.random();
window[funcid] = function(javascript) {
delete window[funcid];
self.javascript = javascript;
self.javascript = new self.javascript();
self.javascript.init();
}
document.write("<script language='javascript'>" +
"window." + funcid + "(" +
"(" + this.javascript + "));" +
"</script>");
我的eval()与IE同样的问题,并以“window.execScript”功能并没有为我工作。 我发现从页面(在我的情况下,PHP)可以在javascript阵列的解决方案是使用JSON一些。
// myfeed.php
return json_encode($myarray);
// myjs.js
$.getJSON('myfeed.php',function(data){dataAlreadyEvaled = data;});
此不需要eval()函数,如果它有助于任何...
不隶属于 StackOverflow