jQuery Force为iframe设置src属性

时间:2011-09-26 07:37:45

标签: javascript jquery dom

我有一个主页面(实际上是一个JSP),里面有一个iframe作为;

<iframe name="abc_frame" id="abc_frame" src="about:blank" frameborder="0" scrolling="no"></iframe>

现在主页上有多个链接(通过JSP动态呈现),可以尝试将src设置为某个URL ...

现在我的问题是,使用jQuery(可能是live()),我可以覆盖它,使得abc_frame的“src”属性总是有一些特定的值(例如“somefixedURL”)

我无法捕获链接点击,因为它是通过一些Java代码完全动态创建的,因此我试图覆盖iframe src?

8 个答案:

答案 0 :(得分:146)

使用attr

$('#abc_frame').attr('src', url)

这样您就可以获取并设置每个HTML标记属性。请注意,还有.prop()。有关差异,请参阅.prop() vs .attr()。简短版本:.attr()用于属性,因为它们是用HTML源代码编写的,.prop()用于连接到DOM元素的所有JavaScript。

答案 1 :(得分:17)

如果您使用的是jQuery 1.6及更高版本,则需要使用.prop()而不是.attr():

$('#abc_frame').prop('src', url)

有关差异的解释,请参阅this question

答案 2 :(得分:8)

生成链接时,将目标设置为iframes name属性,您可能根本不需要处理jquery。

<a href="inventory.aspx" target="contentframe"  title="Title Inventory">
<iframe id="iframe1" name="contentframe"  ></iframe>

答案 3 :(得分:6)

$(document).ready(function() {
    $('#abc_frame').attr('src',url);
})

答案 4 :(得分:4)

设置src属性对我不起作用。 iframe没有显示网址。

对我有用的是:

window.open(url, "nameof_iframe");

希望它有所帮助。

答案 5 :(得分:4)

<script type="text/javascript">
  document.write(
    "<iframe id='myframe' src='http://www.example.com/" + 
    window.location.search + "' height='100' width='100%' >"
  ) 
</script>  

此代码从包含iframe的页面获取url-parameters(?a = 1&amp; b = 2),并将它们附加到iframe的基本网址。它适用于我的目的。

答案 6 :(得分:1)

您无法设置FIX iframe的src或阻止javascript / form提交更改其位置。但是,您可以将脚本放到页面的 onload 并更改每个动态链接的操作。

答案 7 :(得分:1)

$(".excel").click(function () {
    var t = $(this).closest(".tblGrid").attr("id");
    window.frames["Iframe" + t].document.location.href = pagename + "?tbl=" + t;
});

这是我使用的,不需要jquery。在这个具有excel导出图标的每个表的特定场景中,这会强制附加到该表的iframe加载与页面查找的查询字符串中的变量相同的页面,如果找到响应则写入带有excel mimetype并包含该表的数据。