iframe created with jquery prepends absolute URL with current domain
我正在使用 jQuery 创建一个 iframe 到一个"跨站点"URL。这在 Firefox 中可以正常工作,但 IE 将父页面域添加到 iframe src URL。
一个例子是,如果我正在创建 iframe(使用 jQuery):
1 | <iframe src="http://www.google.com"></iframex> |
IE 会尝试加载的页面是:
1 | http://www._mysite_.com/http://www.google.com |
如果我在 HTML 中静态创建 iframe,一切正常。只有当我使用 JS 进行加载时,它才会加载错误的页面。
我想我会理解这是否是 IE 内置的故意跨站点保护,但我想知道是否是这种情况,或者我是否遗漏了什么。
这是 IE 的默认行为吗?如果有人有解决方法,将不胜感激。
编辑:
生成的代码是:
1 | <iframe id="myIframe" width="500" height="400" frameborder="0" src="http://www._website_.com/aaa/bbb/ccc"> |
我在静态 HTML 中测试了生成的代码,它在 IE 中确实可以正常工作。
编辑 2:
这就是我创建 iframe 的方式:
1 2 3 4 5 6 7 8 9 10 11 12 13 | jQuery('.signUp').live('click', function() { var url = 'http://www._website_.com'+$(this).attr('href'); var thisModal='<iframe id="iframeG" frameborder="0" width="500" height="400" src="#"></iframex>'; jQuery('body').append(thisModal); jQuery('#iframeG').prop('src', url); return false; }); |
在这一行:
1 | jQuery('#iframeG').prop('src', url); |
我已经尝试过
问题在于,在 IE 中,
1 | ... |
然后你在你的网站上 http://mydomain.com/foo:
1 | jQuery('#demo').attr('href') == 'http://mydomain.com/foo/bar/baz'; |
解决此问题的两个选项是从