AJAX - 替换页面中的javascript:ajax不会替换javascript

时间:2011-11-02 18:58:16

标签: php javascript ajax insert

我试图通过AJAX在我的页面中替换一些javascript,但由于某种原因,AJAX不会替换它... 当我使用时:

    alert(document.getElementById('treintracking').innerHTML);

我可以清楚地看到脚本中的javascript :(这是javascript片段的开头行)

<script type="text/javascript" id="treintracking">

为了替换脚本我使用:

document.getElementById('treintracking').innerHTML = responseText;

那么,为什么AJAX不想替换javascript? 我已经测试了,用于生成替换javascript的php文件工作正常。 我还考虑到要替换的javascript已经有了标签,所以我删除了php文件中的那些。 但它仍然不会取代内容...

另外,如果它在某个javascript中放了somefunction(),它会运行,还是我必须做一些特别的事情?

注意:javascript脚本是在php文件中生成的。

的: 我现在正在使用这个外部解决方案,我不知道它是如何工作的,但它完美地工作: http://www.javascriptkit.com/javatutors/loadjavascriptcss2.shtml [我从页面源代码中获取了加载脚本,因为文章本身没有...]

2 个答案:

答案 0 :(得分:1)

通过innerHTML添加JavaScript不会被评估。

如果要添加新代码,只需将源设置为新的外部JavaScript文件即可。

因此,您只需设置src

,而不是使用Ajax调用
document.getElementById('treintracking').src = "new/path.php?a=b";

[我会不惜一切代价避免]的另一个解决方案是eval()

答案 1 :(得分:0)

您可能必须在函数中嵌入新的javascript,这可能会将新内容分配给其他函数,然后调用外部函数。不会非常漂亮。