我们正在使用 HTML5 开发手机应用程序,这意味着我们手机上的本地协议(protocol)是 file://。我们现在正在尝试将 Opentable 的小部件包含在我们的页面上。但他们的小部件 JS 链接如下所示:
<script type='text/javascript> src='//secure.opentable.com/widget/reservation/loader?rid=27763&domain=com&type=standard&theme=standard&lang=en&overlay=false&iframe=true'></script>
请注意,它以
开头//secure.opentable.com
因此它将自动获取我们的file://协议(protocol)。但即使我将其更改为
https://secure.opentable.com
它仍然无法在本地运行。我注意到在他们的 JS 源代码中,他们仍然使用“//”,这仍然会以某种方式获得我们的“file://”协议(protocol)。
这是我将链接更改为 https://secure.opentable.com/后出现的错误...
Failed to load resource: The requested URL was not found on this server.
file://www.opentable.com/widget/reservation/canvas?rid=27763&domain=com&type=standard&theme=standard&lang=en&overlay=false&insideiframe=true
我注意到在控制台中它看起来像:
如何使其适用于本地环境?
谢谢!
最佳答案
也许这会起作用:
$(document).ready(function() {
$("iframe[src^='//www.opentable.com']").attr('src', function(i, oldsrc) {
return "https:" + oldsrc;
});
);
它会等到文档准备好,这应该是在将新的 IFRAME 添加到 DOM 之后,然后将其 src
替换为具有 https:
协议(protocol)的文件.
关于javascript - 从本地协议(protocol)强制 Javascript 文件中的 http 协议(protocol),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39089006/