从本地协议

时间:2016-08-22 21:27:28

标签: javascript jquery html5 cordova iframe

我们正在使用HTML5开发手机应用,这意味着手机上的本地协议为 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:// 协议。但即使我把它改为

https://secure.opentable.com

它仍不适用于本地。我注意到在他们的JS源代码中,他们仍然使用“//”,这将以某种方式仍然获得我们的“file://”协议。

将链接更改为 https://secure.opentable.com/后,出现错误...

  

无法加载资源:未在此处找到请求的网址   服务器

     

文件://www.opentable.com/widget/reservation/canvas摆脱= 27763&安培;域= COM&安培;类型=标准&安培;主题=标准&安培;朗= EN&安培;覆盖=假安培; insideiframe =真

我注意到在控制台中它看起来像:

enter image description here

如何让它适用于本地环境?

谢谢!

1 个答案:

答案 0 :(得分:1)

也许这会奏效:

$(document).ready(function() {
    $("iframe[src^='//www.opentable.com']").attr('src', function(i, oldsrc) {
        return "https:" + oldsrc;
    });
);

它等待文档准备就绪,应该在将新的IFRAME添加到DOM之后,然后用src协议替换它https: