使用 jQuery 将 iframe 源从 HTTP 更改为 HTTPS

Posted

技术标签:

【中文标题】使用 jQuery 将 iframe 源从 HTTP 更改为 HTTPS【英文标题】:Change iframe source from HTTP to HTTPS with jQuery 【发布时间】:2016-07-10 17:22:57 【问题描述】:

我的 WordPress 网站上有一个插件,可以自动将 iframe 添加到我的每个产品页面。我最近开始使用 CloudFlare 的灵活 SSL,现在 iframe URL 不会加载,因为它被认为是不安全的。有什么方法可以动态地将 iframe 的 URL 更改为 https 而不是 http?

我已经确认两个版本的 URL 工作方式相同。

【问题讨论】:

【参考方案1】:

这将在页面上的所有iframes 上搜索并替换httphttps

如果需要任何进一步的帮助,请告诉我;

fiddle

jQuery(document).ready(function($) 
  $("#pros_reviews iframe").each(function() 
    var $frame = $(this)
    $frame.attr('src', $frame.attr('src').replace('http:', 'https:'))
  );
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="pros_reviews">
  <iframe src="http://www.w3schools.com"></iframe>
</div>

【讨论】:

我需要特定版本的 jQuery 才能使用吗?截至目前,我已经加载了 1.11.3 版本。 我不确定出了什么问题,但它不起作用。 apocalypse.supplies/store/books-dvds/books/… 傻我你不需要 WordPress 冲突检查我更新的代码 我收到一个错误:Uncaught TypeError: Cannot read property 'replace' of undefined 另外,内容现在没有加载到正确的选项卡中,但可能是因为错误。 你能指出 iframe 的方向吗?你正在使用的插件的名称是什么【参考方案2】:

要使用相同的协议(http 或 https)加载 iframe,请使用相对方案:“//example.com”而不是“http://example.com”。 '//' 表示使用与父页面相同的方案

请注意,它并不安全。最安全的方法是始终加载“https://”(并为从 http 到 https 的所有页面设置 301 重定向)

【讨论】:

我认为问题在于他的插件强制 http.他无法控制打印的内容,否则他只会放 https @DCdaz 我不确定 dynamically 他的意思是“使用与父级相同的协议”(我的回答)或“我无法触摸源,可以JS修好了吗?” (你的回答者) 分钟有人说 WordPress 假设他们不能编辑打印的内容很安全哈哈 我无法控制正在加载的 iframe URL。

以上是关于使用 jQuery 将 iframe 源从 HTTP 更改为 HTTPS的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Jquery 将数据发布到 iframe

使用 javascript/jquery,将表单变量传递给 iframe src 参数

如何使用 jQuery 将 JavaScript 代码添加到现有的 iFrame 中?

使用 Javascript 或 jQuery 将元素写入子 iframe

Chrome 扩展将 jquery 注入 iframe

如何使用jquery将javascript代码注入iframe头部