2016-11-22 26 views
3

我想安装诺顿密封我angularjs网站。当诺顿脚本加载它的每次说,在我的控制台就像一个警告,如何为angularjs站点设置诺顿密封?

“未能在‘文档’执行‘写’:这是不可能写 到文档从异步加载的外部脚本除非 明确打开。“

我知道脚本是异步加载的,这意味着它从文档解析状态分离。 JS引擎完全没有办法知道哪里的document.write应该在页面中执行。 我现在使用postcribe.But但我想知道,如果有更好的方法比使用postscribe

有没有什么办法让这个运行。感谢任何帮助。

+0

的可能的复制[如何推迟诺顿安全站点签章的负荷?](http://stackoverflow.com/questions/14872978/how-to-defer-loading-of-a-norton-secure-site-密封) –

+0

SO有多个答案可以回答这个问题。正如你所说的那样,问题在于'document.write()',但你可以通过延迟脚本加载来轻松延迟这个问题。只需Google提供错误消息,您就可以找到多个答案。 –

+0

看看我的评论,我发布了一个链接到一个问题,并给你一个答案。你的问题与其他多个问题具有相同的答案。此线程中的唯一答案需要第三方库,而这不是必需的。我不打算无礼,我只是不认为这是必须被问到什么时候它被回答过。 –

回答

5

今天我有同样的问题,并通过interwebs搜索和我的一些同事商量后,我们提出了以下解决方案:https://github.com/krux/postscribe

所有你需要使用postcribe第一

它将取代所有document.write调用,以便您不再从浏览器中获取此错误。

例如在我来说,我做到以下几点:

.postscribe('#seal', '... put the norton seal script tag here ..'); 

然后你只需要拥有一个div id="seal"地方在您的网站,它会通过实际的印章图像所取代。

但是,如果此div在您的角度应用程序内部,则需要在角度应用程序内部调用postscribe

我创造,我添加了一个链接post功能的指令(其持有格)这样做。在post函数中,我只需像上面那样调用postscribe。 如果你需要这种方法,我可以写一个片段。

+0

感谢answer.I正在使用'postcribe'。 –

+0

你是如何在角度应用程序中实际导入和使用postscribe的? – Anthony

+0

我发现如何实现这一plunker:http://embed.plnkr.co/FHSVKDL2rv8TAQyTeqE2/我加入了postscribe功能ngAfterViewInit – Anthony