gpt4 book ai didi

javascript - 控制来自第三方的 document.write 调用的范围

转载 作者:搜寻专家 更新时间:2023-11-01 05:26:50 26 4
gpt4 key购买 nike

我正在编写一个依赖于外部 javascript 文件(我无法控制)的网页,该文件通过使用 document.write 返回数据。有没有办法动态调用该函数而不覆盖整个文档?这是我能想到的最简洁的代码:

<html>    
<head>
<script type="text/javascript">
function horriblefunction () {
document.write("new text");
}
</script>
</head>

<body>
Starting Text...
<div id="pleasewriteinme"></div>
Other text...
<button onclick="horriblefunction();">Click</button>
</body>
</html>

想法开始于不改变“horribleblefunction()”(因为它是外部的)新文本可以放在 div 中而不是覆盖页面。这是可能的还是在创建页面时必须在 div 内部调用该函数?

谢谢你的帮助

最佳答案

在页面完成呈现后使用 document.write 的唯一方法是暂时用您自己制作的函数替换该函数,将内容推送到 div 中。例如

function horriblefunction() { 
var old_dw = document.write;
document.write = function(text) {
document.getElementById( 'some_div' ).innerHTML = text;
}

// now call your external JS function that uses document.write

document.write = old_dw;
}

只要外部 JS 已经加载并且您只是调用一个函数,这就会起作用。如果您需要加载 JS(例如,通过将新的 <script> 标记插入 DOM),请记住该操作是异步的,并且您需要观察 DOM 以了解何时可以安全地恢复旧版本的 document.write

关于javascript - 控制来自第三方的 document.write 调用的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2959561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com