jQuery Force为iframe设置src属性

tes*_*dtv 73 javascript jquery dom

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

<iframe name="abc_frame" id="abc_frame" src="about:blank" frameborder="0" scrolling="no"></iframe>
Run Code Online (Sandbox Code Playgroud)

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

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

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

PiT*_*ber 153

使用attr

$('#abc_frame').attr('src', url)
Run Code Online (Sandbox Code Playgroud)

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


kal*_*yfe 18

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

$('#abc_frame').prop('src', url)
Run Code Online (Sandbox Code Playgroud)

请参阅此问题以获得差异的解释.

  • 有趣的链接,但请注意答案已更新,因为jQuery _reverted_` attr()`行为.总的来说,我不同意在这里使用`.prop()`因为`src`是一个属性而不是属性,因为你链接的`.prop()`的API文档解释了. (4认同)

Bri*_*izo 8

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

<a href="inventory.aspx" target="contentframe"  title="Title Inventory">
<iframe id="iframe1" name="contentframe"  ></iframe>
Run Code Online (Sandbox Code Playgroud)


Jay*_*dra 7

$(document).ready(function() {
    $('#abc_frame').attr('src',url);
})
Run Code Online (Sandbox Code Playgroud)


小智 5

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

对我有用的是:

window.open(url, "nameof_iframe");
Run Code Online (Sandbox Code Playgroud)

希望它可以帮助某人。