使用 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
上搜索并替换http
为https
。
如果需要任何进一步的帮助,请告诉我;
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的主要内容,如果未能解决你的问题,请参考以下文章
使用 javascript/jquery,将表单变量传递给 iframe src 参数
如何使用 jQuery 将 JavaScript 代码添加到现有的 iFrame 中?