【问题标题】:Browser crashes at changing certain iframe src attribute with jQuery浏览器在使用 jQuery 更改某些 iframe src 属性时崩溃
【发布时间】:2014-10-17 14:05:27
【问题描述】:

我得到了这些页面:

我希望能够通过操纵 jQuery 的 src 属性来更改在“ma​​ster”处显示的 iframe

我在这里试过了:

http://jsfiddle.net/Frondor/86960cyw/

但每次我尝试使用表单时,我的浏览器 (chrome) 崩溃。这真的很奇怪!因为我尝试过使用其他一些 iframe,它似乎工作正常:

http://jsfiddle.net/Frondor/2wdauscv/

我知道我可能正在处理同源策略,但我正在尝试找出解决方法,因为我可以访问 iframe 源代码,我可以设置一个标题或其他东西以允许我的“主”页面使用 jQuery 更改 iframe。


现在我认为同源策略与它无关,因为我真的可以在this 示例上做我想做的事。我真的很困惑

【问题讨论】:

  • iframe 可能有问题。也许尝试使用 ajax 将页面加载到 div 中。
  • 请启发我:)

标签: jquery html iframe same-origin-policy


【解决方案1】:

如 cmets 中所述。您可以只使用 .load() 将页面加载到 div 中,而不是使用 iframe。

HTML

<form action="#">
    <select name="changeIframe" id="select">
        <option value="cafeteria">cafeteria</option>
        <option value="confiteria">confiteria</option>
        <option value="pasteleria">pasteleria</option>
    </select>
</form>
<div id="container"></div>

jQuery

$(document).ready(function () {
$( "#container" ).load( "http://lordfede.byethost13.com/ferreteria.php" ); //Load the first "iframe" page
    $('#select').on("change", function (e) {
        var iframe = "http://lordfede.byethost13.com/" + $(this).val() + ".php";        
        e.preventDefault();
        $( "#container" ).load( iframe );
    });
});

【讨论】:

  • 嗯...这对我来说不是一个解决方案,因为它在我的 iframe 页面上搞砸了脚本。 .load() 方法不渲染脚本,所以它对我没用。请参阅:jsfiddle.net/Frondor/k00hcqod 顺便说一句,我应该添加 &lt;?php header("Access-Control-Allow-Origin: *"); ?&gt; 以使您的示例正常工作
  • 你能把脚本放在主html页面上吗? load 的工作原理是将其他页面的 html 插入到 div 中。因此,该页面中的脚本可以与您的其他脚本一起放置。
  • 它不起作用,请参阅我的 iframe 源代码:pastebin.com/embed_iframe.php?i=r9E2ZaHS ----- 1)我正在使用 php 作为 $timestamp 并且 2)我将转换该脚本以使用跨域ajax 请求,因为master 没有托管在网络服务器上,我不能在母版页上使用 php,这就是我需要这些 iframe 的原因。见jsfiddle.net/Frondor/k00hcqod
猜你喜欢
  • 2018-09-30
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 2023-01-01
  • 1970-01-01
  • 2012-09-10
  • 1970-01-01
相关资源
最近更新 更多