在计算javascript时设置此指针的值
我想执行一些javascript,这是我通过AJAX下载的html的一部分。下载后,我调用在计算javascript时设置此指针的值,javascript,eval,this,Javascript,Eval,This,我想执行一些javascript,这是我通过AJAX下载的html的一部分。下载后,我调用eval查看所有脚本标记。有没有办法操纵这个指针,让它指向我定义的东西(例如,下载的AJAX blob)。 我之所以需要它,是因为我需要对仅下载的HTML进行一些下载后处理。现在,我通过为AJAX父元素分配一个ID来实现这一点,并让脚本首先对该元素进行查找(getElementById)。只要ID是唯一的,这就可以工作,但在我的例子中很难实施 我当前的代码如下所示: if (element.chil
eval
查看所有脚本标记。有没有办法操纵这个指针,让它指向我定义的东西(例如,下载的AJAX blob)。
我之所以需要它,是因为我需要对仅下载的HTML
进行一些下载后处理。现在,我通过为AJAX父元素分配一个ID来实现这一点,并让脚本首先对该元素进行查找(getElementById
)。只要ID是唯一的,这就可以工作,但在我的例子中很难实施
我当前的代码如下所示:
if (element.children[i].tagName=="SCRIPT")
{
eval(element.children[i].innerHTML);
}
我希望innerHTML
中的this
指针指向元素。有人吗?您可以使用或。请注意,原语(42
,true
,“foo”
)将被装箱
if (element.children[i].tagName=="SCRIPT")
{
eval.call(element, element.children[i].innerHTML);
}
谢谢你的快速回答。我快速查看了apply
和call
,但没有看到如何在我的案例中使用它。我用当前代码扩展了我的问题。您能建议如何更改此代码吗?谢谢!好了,我找到解决办法了!我首先尝试调用eval.apply(element,element.children[I].innerHTML)
,但这不起作用。现在我将代码更改为var func=new函数(element.children[I].innerHTML);函数应用(元素)代码>这很好用!这正是我要建议的。不过,看看我对你问题的评论——这一切都很难闻。我不明白你的问题是什么。“在innerHTML
中的这个
指针是什么意思?”?你能把一些简化的代码(伪代码)放到你想做的事情(AJAX调用、脚本求值等)上吗?我认为这比长文本段落更有效:)有更多的上下文吗?不确定您为什么需要“this”或“eval”。只是包括标签不起作用?(1)我不明白为什么你需要eval
任何东西。将ajax的片段附加到DOM中的某个地方,浏览器将为您解决这个问题。(2) 为什么要将此
作为对
标记的引用?JS依赖于它吗?整个事情对我来说都很难闻。如果下载包含
元素的AJAX元素,它们不会通过将其分配给现有的元素来执行。innerHTML
!参见示例和