首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CDNResourceHandler的Omnifaces延迟脚本

使用CDNResourceHandler的Omnifaces延迟脚本
EN

Stack Overflow用户
提问于 2017-02-10 08:38:06
回答 1查看 161关注 0票数 1

现在,我从Omnifaces生成的googleAds脚本中加载CDNResourceHandler脚本

代码语言:javascript
复制
<script type="text/javascript" src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>

现在,如果我尝试将Omnifaces deferredScript与CDN资源处理程序一起加载相同的库,则浏览器将显示消息。

从源'https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js‘访问脚本的'https://xxxx’已被CORS策略阻止:请求的资源上没有“访问控制-允许-原产地”标题。

生成的html

代码语言:javascript
复制
<script type="text/javascript">OmniFaces.DeferredScript.add('https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js');</script>

你能解释一下怎么让它工作吗?将deferredScript和CDNResourceHandler实用程序结合起来是可能的,但它似乎会产生CORS问题。如何解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2017-02-10 13:17:30

从来没有想过要获得外部资源。

造成您的技术问题是因为这个标记明确地说设置crossorigin="anonymous"属性以支持脚本错误报告(这样JavaScript错误就可以发送到服务器端进行日志记录)。当未设置该属性时,您的具体问题将得到解决。

当脚本的src是外部的时候,您可以向OmniFaces人员报告一个问题并告诉他们跳过这个属性。现在,只需继续使用普通的<script>元素即可。您可以使用#{resource}根据库和名称生成所需的URL。

代码语言:javascript
复制
<script src="#{resource['cdn:adsbygoogle.js']}">

这为手动设置元素上的async="true"属性提供了空间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42154883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档