Chrome 打包应用程序无法与 jquery 和 jquery mobile 配合使用

2023-12-27

使用 jQuery 1.10.2 和 jQuery Mobile 1.3.2 我尝试使用以下简单的 html 创建一个 chrome 打包应用程序...

<!DOCTYPE html>
<html>
<body>
    <div data-role="page">
        <script async src="events.js" type="text/javascript"></script>
    </div>
</body>
</html>

有两个问题。首先,jQuery 将拦截加载 events.js 的脚本标签并调用 xhr.open( s.type, s.url, s.async );然而 s.async 是假的。 Chrome 打包应用程序不允许同步加载。所以在 jQuery 中的这一行之前我设置了 s.async = true;

下一个问题是 jquery 将在第一个文档插入时在每个脚本上调用其 globalEval 方法,并且这会调用 eval ,这会在 chrome 打包应用程序中产生此 CSP 错误:

未捕获的 EvalError:拒绝将字符串评估为 JavaScript,因为“unsafe-eval”不是以下内容安全策略指令中允许的脚本源:“default-src 'self' chrome-extension-resource:”。

一种解决方案可能是沙箱(在清单中添加 html 页面),但这会导致另一个问题: XMLHttpRequest 无法加载 chrome-extension://ocnbknafegfhcgbiciegbfndjckamkoj/events.html。 Access-Control-Allow-Origin 不允许 Origin null。 服务器有“Access-Control-Allow-Origin”,“*”,所以我不会想到这个错误。

那么,第一个同步错误是 jquery 问题吗? 第二个问题也是jquery/chrome打包的应用程序不匹配吗? CSP 有解决方法吗? 有没有一种方法可以沙箱但允许在页面之间导航?


正如您所提到的,由于内容安全策略 (CSP),您无法在 Chrome 打包应用中使用 globalEval。您也不能使用行内脚本标记,因为 CSP 也认为这存在安全风险。

通过对非 CSP 投诉的 HTML 和 JS 进行沙箱处理,您的做法是正确的,但是为了发出 XHR 请求,您需要使用窗口之间的消息传递服务来消除 Origin 错误。

查看以下 url,其中包含有关如何处理跨源请求的文档:http://developer.chrome.com/apps/app_external.html#cross-origin http://developer.chrome.com/apps/app_external.html#cross-origin

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Chrome 打包应用程序无法与 jquery 和 jquery mobile 配合使用 的相关文章

  • 为什么blur.js 试图访问“none”文件?

    我正在尝试使用blur js 在我的网站上创建模糊效果 以便您可以看到内容背后的网站背景 但是 它似乎正在尝试访问名为 none 的图像 这是 chrome javascript 日志的输出 container blurjs source
  • IE 中缓慢的 jQuery 动画

    我有一个网站http www special4you co uk http www special4you co uk并有一个由气球制成的动画导航 这在 FF 和 Chrome 中工作并且看起来很可爱 但在所有 IE 中它看起来很裤子 因为
  • 屏蔽社会安全号码输入

    对于我正在构建的网络应用程序来说 隐私非常重要 用户输入数据的格式也非常重要 为了帮助解决这个问题 我插入了一个 jquery 库 它将帮助屏蔽字段http igorescobar github io jQuery Mask Plugin
  • 不允许在文本区域中换行

    使用 jQuery 如何不允许插入新行 通过按 Enter 或复制文本 在半伪代码中 textarea keydown function this remove new lines Thanks EDIT 是像下面这样粗暴还是有更好的方法
  • 使用 javascript 或 jquery 水平滚动 div onclick

    过去两天我一直在寻找一个简单的 javascript 或 jquery 代码 我想使用 javascript 或 jquery 合并水平滚动 div 来显示我的网络作品集工作页面的图像和描述性文本 它的功能与此处所示的 glide oncl
  • 如何防止在前置时滚动?

    我将内容添加到正文的顶部 有时该内容的高度可能为 400 500 像素 当添加类似的内容时 在阅读页面时将内容向下推可能会非常烦人 我希望这些项目自动添加到前面 而不是像单击此处查看新项目那样 有没有办法在不移动页面的情况下将此内容添加到正
  • 如何显示带有排序下拉列表的页面?

    我有一个选择列表
  • 识别出现在指定位置的所有元素

    jQuery 中是否有任何方法可以选择位于特定位置的所有元素 例如选择位于 left 100 和 top 300 的元素 另一个 div 位于同一位置 单击时我想获取两个 Div 的 ID 如果我可以选择位于一系列位置的元素 那就太好了 h
  • 如何根据路径/URL 选择图像?

    我想根据图片的 URL 来选择图片 但由于某种原因 它没有发挥作用 最终我追求的是这样的东西 var imgs img src images object png not hidden 但即使是简单的事情 比如 img src images
  • Slick Slider 绑定悬停事件

    我正在使用光滑的滑块来显示图像 目前我已经有了它 因此您可以单击导航 它会更改主图像显示 我试图让它在悬停事件或鼠标悬停事件上设置当前选定的导航 这是我当前的导航和显示代码 slider for slick slidesToShow 1 s
  • Jquery 数据表 1.10.10 中表行的延迟加载?

    我正在使用 jquery 数据表 1 10 10 是否有任何选项可以延迟加载数据表中的行数据 例如 如果数据表包含 50 行记录 如果我将数据表滚动到最后 它会请求另外 50 行数据并附加到已经存在的数据表中 延迟加载可以通过以下方式实现S
  • 无法在使用 ajax 调用加载的 DOM 中聚焦输入字段

    我疯狂地试图弄清楚如何使这项工作发挥作用 代码大致如下 function onDropDownChanged updatePanel load myUrl id myDropDown option selected val onPanelL
  • 单击 div 时更改复选框状态(真/假)

    我有一个带有图像 标签和输入复选框的 div 当我点击 div 时 我喜欢什么 它会将复选框状态从 true 更改为 false 并且反之亦然 jQuery markerDiv click function if this find inp
  • 阻止跨域调用 asp.net .asmx Web 服务

    我构建了一个应用程序 它使用 jQuery 和 JSON 来使用 ASP NET asmx Web 服务来执行增删改查操作 应用程序和 asmx 位于同一域中 我不介意人们远程消耗 asmx 的读取操作 但不希望人们随机删除内容 我可以将我
  • 为什么 jQuery 的 Promise 有 did(),而 Mozilla 记录的 Javascript 的 Promise 却没有?如果我想在 JS 中有一个 did() 该怎么办?

    Mozilla 的 JavaScript 文档的 Promise 之间有什么区别 请参阅API page https developer mozilla org en US docs Web JavaScript Reference Glo
  • 数据表 - 为最后一列添加 colspan 时不起作用

    我在使用数据表时遇到问题 当我为最后一列添加 colspan 时 数据表插件不会应用于表 如果我删除最后一个列的 colspan 并将其放入任何其他列 它就可以工作 例如 table width 100 border 0 cellspaci
  • jqGrid 中的时间格式

    我正在尝试在 jqGrid 中设置时间格式 这是行不通的 我想在区域设置文件中使用预定义的格式化程序 这是 col 的定义方式 name Tid index Tid width 65 editable true formatoptions
  • 在 ajax post 之前使用 unobtrusive 进行验证

    所以我一直在玩弄防伪令牌 取得进展 https stackoverflow com questions 7270387 mvc 3 ajax and validateantiforgerytoken谢谢你们 我已经找到了一个解决方案来合并表
  • 如何使用Javascript统计通过ajax返回的
  • 的数量?
  • 我有一个 ajax 代码 它将列表项返回为 li one li li Two li 每次都会返回不同数量的 li 的 我想查一下数量 li li 它返回 如何使用 JavaScript 检查它 给你 returnedHTML find li
  • 将 div 移动到 dom 中的其他位置

    以下代码被动态插入到 DOM 中 但是 我想将 div example 从原来的位置移动并将其添加到 wrapper 前面 我如何使用 jQuery 来实现这一目标 div div div div div div div div I tri

随机推荐