无法获取文档.编写使用ajax的程序

Can't get document.write to work with ajax

本文关键字:ajax 程序 获取 文档      更新时间:2023-09-26

我有一个使用文档的脚本。写,需要在ajax工作,但我有困难找到一个解决方案,使其工作。下面是通过ajax加载到页面中的脚本。

<script type="text/javascript">
 example_widget_id = "example-1234";
example_widget_name = "registration";
example_widget_type = "example";
document.write(unescape("%3Cscript src='https://widgets.example.com/javascripts/example_widget.js' type='text/javascript'%3E%3C/script%3E"));
</script>

发生的是页面变成空白…这对于文档来说是正常的。编写和ajax。我试图找到一种方法来添加它通过innerHTML(或其他解决方案),但我没有运气。我看了看这个线程JavaScript文档。当使用AJAX时,Write会替换所有的Body内容但我似乎不知道如何用我现有的东西来做这件事。

谢谢你提供的任何帮助。

更新:该脚本片段是第三方小部件。它是通过将其插入前端网页编辑器中使用的,该编辑器允许用户在页面上的任何位置定位他们想要的内容(通过ajax)。一旦它被定位,它也可以与前端编辑器样式。当页面是用户想要的样子时,他们可以保存布局并禁用(关闭)前端编辑器,直到需要时再使用。当这种情况发生时,脚本(document.write)将加载并在页面上正常工作,而不会受到基于ajax的前端编辑器的干扰。我在想是否有一种方法来缓存文档的html结果。写(html部分),然后缓存的版本可以通过前端编辑器加载。然后,我可以用原始脚本w/document替换出小部件的html缓存版本。一旦前端编辑器被禁用或关闭,就写入。我摆弄了一下逻辑,我可以根据前端编辑器的状态来切换加载的内容。我想我的问题是能不能有文件。写内容是缓存还是保存?我想我可以处理之后使用它的逻辑

无解document.write()在onload事件触发后替换文档。这是不可能的。

你不能让它工作*.

*注:从技术上讲,你可以使它工作,如果你写你自己的web浏览器,因为你将能够使你的浏览器不像所有其他浏览器的行为和附加而不是替换document.write()。但你不能让它在Chrome、IE、Firefox或Opera上运行。


对于一个快速解决方案,使用.innerHTML代替。要获得更好的解决方案,请学习DOM操作API(或使用DOM库)。