我正在尝试为我的angularjs网站设置norton密封。每当norton脚本加载它时,在我的控制台中都会发出警告,例如,
"无法执行'写'在'文件':不可能写 从异步加载的外部脚本转换为文档,除非 它是明确打开的。"
我理解脚本是异步加载的,这意味着它与文档解析状态分离。对于JS引擎来说,确实知道应该在页面中执行document.write是非常方便的。
我现在正在使用postcribe
。但我想知道,如果有更好的方法而不是使用postscribe
有没有办法让这个运行。谢谢你的帮助。
答案 0 :(得分:5)
我今天遇到了同样的问题,在搜索了互联网并与我的一些同事讨论后,我们提出了以下解决方案:
首先,您需要使用 postcribe :https://github.com/krux/postscribe
它将替换所有document.write
次调用,以便您不再从浏览器中收到此错误。
e.g。就我而言,我会做以下事情:
.postscribe('#seal', '... put the norton seal script tag here ..');
然后,您只需要在您的网站上的某处div id="seal"
,它将被实际的印章图片取代。
但是,如果此div
位于您的角度应用程序中,则需要在角度应用程序中调用postscribe
。
我是通过创建一个指令(包含div)来实现这一点的,其中我添加了一个post
链接函数。在post函数中,我只需按上述方法调用postscribe。
如果你需要这种方法,我可以写一个片段。