首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确保仅在第一个脚本之后加载第二个脚本

确保仅在第一个脚本之后加载第二个脚本
EN

Stack Overflow用户
提问于 2017-06-26 18:42:43
回答 2查看 173关注 0票数 0

Jquery是在自定义插件(elevateZoom)之后加载的。导致elevateZoom失败。

有解决这个问题的办法吗?

请注意:由于政策,我只能更改正文文本。

代码语言:javascript
复制
<script type="text/javascript" src="/sites/default/files/jquery.elevateZoom.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script type="text/javascript">
  $(document).ready(function () {
    $("#zoom_01").elevateZoom(); 
  }); 
</script>

<p>
  <img id="zoom_01" alt="" data-entity-type="" data-entity-uuid=""
       data-zoom-image="/sites/default/files/2017-06/Ipad-with-loupe.png"
       src="/sites/default/files/2017-06/Ipad-with-loupe-small.png" />
</p>

控制台的错误信息如下:

代码语言:javascript
复制
Refused to load the script 'https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' 'unsafe-inline'

实时链接- https://www.workbooks.com/test-jquery-zoom

EN

回答 2

Stack Overflow用户

发布于 2017-06-26 19:06:33

您的网站有内容安全策略,禁止您从CDN加载jQuery。

您链接的实时站点具有以下Content-Security-Policy标头签名:

代码语言:javascript
复制
Content-Security-Policy:script-src 'self' 'unsafe-eval' 'unsafe-inline' https://www.youtube.com/ https://maps.googleapis.com ; object-src 'self'

您需要将ajax.googleapis.com域添加到该策略中,或者在已列入白名单的某个站点中托管jQuery。

票数 1
EN

Stack Overflow用户

发布于 2017-06-26 18:48:05

按照这个顺序给出脚本标签

代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="/sites/default/files/jquery.elevateZoom.min.js"></script>

这使得浏览器首先加载jquery,然后加载插件。您可以尝试使用requirejs库。它可以异步加载js文件,并具有先加载依赖项,然后加载插件的功能。

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

https://stackoverflow.com/questions/44757912

复制
相关文章

相似问题

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