如何在 jQuery ajax 完成后重新启用 document.write
How to renable document.write after jQuery ajax has completed
我必须抓取一个包含document.write的JS片段 - 这会导致页面在document.write渲染后变为空白。我能够通过重新定义document.write来解决此问题,并将脚本的响应传递给我用来从getScript() jQuery函数输出响应的函数。但是,我在页面稍后加载的其他元素和脚本时遇到了问题,我的重新定义阻止在页面上输出。如何在 jQuery getScript() 完成后将 document.write 设置回默认功能?
$.getScript('somescript.com/script/', function(){
//Prevent document.write normal behavior
document.write = function(markup) {
fullMarkup += markup;
appendResponse(markup);
}
}
});
只需将原始引用保存到某个变量中document.write
,并在使用替换后恢复它。
window.backupWrite = document.write;
并在成功完全加载(和执行)脚本后
document.write = window.backupWrite;
一旦你在加载完所有内容后执行document.write
,它将清空页面。
如果您的目标只是检索和执行脚本,$.getScript()
已经为您完成了此操作。
$.getScript('somescript.com/script/');
如果 DOM 在某些大型浏览器中呈现文档后运行,document.write
完全清除 DOM。 也就是说,不要使用它。 如果你对外部脚本没有选择,那就太糟糕了。 您可以使用各种 jQuery .append
方法以字符串形式添加内容。
相关文章:
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 如何在 API 调用后和 if 语句中启用提交按钮
- 语义ui如何使用javascript启用或禁用下拉列表
- IE6在启用/禁用文本字段上闪烁
- 传单中如何在更改基层时启用/禁用覆盖层
- 根据字段的值启用按钮
- 如何使用javascript函数在gridview中按行启用/禁用复选框
- 如何禁用和启用css规则
- 淘汰赛.JS'启用'长度绑定条件不起作用
- 在新类 jQuery 上启用可拖动
- JavaScript 启用新的 HTML5 按钮属性:formaction、formmethod
- jQuery 性能问题,通过为新元素启用拖放
- Javascript——如何在不使用新运算符的情况下启用静态方法,同时防止使用实例函数
- 如何在使用窗口后启用浏览器选项卡.打开以启动一个新窗口
- 创建一个表单提交按钮,启用“在新窗中打开”;当用户右键点击时
- 检查打开新选项卡时是否启用了弹出窗口阻止程序
- 如何在加载新页面时启用jquery标签/单选按钮
- 有没有一种好方法来启用“在新窗口中打开链接”?在dom节点上的浏览器菜单选项,而不使链接跟随单击
- 如何启用超链接打开模态对话框,同时也允许在同一链接上的新选项卡中打开
- Jquery:如果其他滑动开关被启用(可见),在启动新的滑动开关之前关闭