无法在“文档”上执行“写入” [嵌入MailChimp存档]

我正在尝试将脚本加载到基于React的站点上,但是由于脚本是单个document.write()行,因此我遇到了问题,这会导致以下错误:

Failed to execute 'write' on 'Document': It isn't possible to write into a document from an 
asynchronously-loaded external script unless it is explicitly opened.

不幸的是,我无法更改任何脚本代码,因此删除document.write()并替换为其他内容不是一种选择,至少不是服务器端。我的想法是,我可以先检索代码,重新编写代码,然后再进行更正。我发现检索代码也很困难。

该脚本源正在使用CORS,因此由于不允许跨域使用,因此我最初使用fetch来检索代码的想法已经出来。如果您错过了它,则我无权访问服务器,因此也不可更改CORS。

我目前正在尝试使用回调来访问脚本的代码,但与此同时我也遇到了问题。我想知道的是,是否有一种更简便的方法来访问脚本,该脚本是从脚本的源代码中加载的,最好是在浏览器尝试运行它之前。

编辑#1 :该脚本来自MailChimp。您传递了一些信息,它返回了最后生成的document.write()行。我希望这能解释为什么我不能更改脚本以及为什么不能更改CORS。我知道一种解决CORS问题的方法(在我的服务器上设置一个从MailChimp提取数据的API端点将使我绕过CORS),但是我正在寻找更简单的方法。我相信,如@Jimmy Breck-McKye所建议的那样,通过iframe加载脚本并访问innerHTML可能是一种方法。

编辑#2 :@Jimmy Breck-McKye还建议这可能是一个X / Y问题,并且可能是这种情况。我需要此脚本提供的数据,但是该脚本是垃圾邮件,因为它使用document.write()。从脚本读取数据只能通过ajax请求来完成,但这对MailChimp无效,因为它们已经在糟糕的代码周围抛出了CORS。通过遍历CORS,获取脚本并用append()替换document.write(),我设法获得了所需的东西。很高兴与遇到相同问题的任何人共享使此功能有效的代码,希望听到更好的解决方案。

lynch123 回答:无法在“文档”上执行“写入” [嵌入MailChimp存档]

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3017696.html

大家都在问