我试图通过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 [我从页面源代码中获取了加载脚本,因为文章本身没有...]
答案 0 :(得分:1)
通过innerHTML添加JavaScript不会被评估。
如果要添加新代码,只需将源设置为新的外部JavaScript文件即可。
因此,您只需设置src
,而不是使用Ajax调用document.getElementById('treintracking').src = "new/path.php?a=b";
[我会不惜一切代价避免]的另一个解决方案是eval()
。
答案 1 :(得分:0)
您可能必须在函数中嵌入新的javascript,这可能会将新内容分配给其他函数,然后调用外部函数。不会非常漂亮。