jQuery 强制设置 iframe 的 src 属性

发布于 2024-12-06 06:10:46 字数 393 浏览 1 评论 0原文

我有一个主页(实际上是一个 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 ?

I have a main page (actually a JSP) with an iframe inside it as;

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

Now there are multiple links on the main page (rendered dynamically via JSP) which can try to set the src to some URL...

Now my question is,using jQuery (may be live()), can I override that in such a way that the "src" attribute for abc_frame would always have some particular value (e.g. "somefixedURL")

I cannot capture the link clicking, as it is completely dynamically created via some Java code and hence I am trying to override the iframe src ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

趁微风不噪 2024-12-13 06:10:46

使用 attr

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

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

Use attr

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

This way you can get and set every HTML tag attribute. Note that there is also .prop(). See .prop() vs .attr() about the differences. Short version: .attr() is used for attributes as they are written in HTML source code and .prop() is for all that JavaScript attached to the DOM element.

念﹏祤嫣 2024-12-13 06:10:46

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

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

请参阅此问题了解差异的说明。

if you are using jQuery 1.6 and up, you want to use .prop() rather than .attr():

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

See this question for an explanation of the differences.

伴我心暖 2024-12-13 06:10:46

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

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

While generating the links set the target to the iframes name property and you probably wont have to deal with jquery at all.

<a href="inventory.aspx" target="contentframe"  title="Title Inventory">
<iframe id="iframe1" name="contentframe"  ></iframe>
朮生 2024-12-13 06:10:46
$(document).ready(function() {
    $('#abc_frame').attr('src',url);
})
$(document).ready(function() {
    $('#abc_frame').attr('src',url);
})
只是在用心讲痛 2024-12-13 06:10:46

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

对我有用的是:

window.open(url, "nameof_iframe");

希望它能帮助别人。

Setting src attribute didn't work for me.
The iframe didn't display the url.

What worked for me was:

window.open(url, "nameof_iframe");

Hope it helps someone.

说不完的你爱 2024-12-13 06:10:46
<script type="text/javascript">
  document.write(
    "<iframe id='myframe' src='http://www.example.com/" + 
    window.location.search + "' height='100' width='100%' >"
  ) 
</script>  

此代码从包含 iframe 的页面获取 url 参数 (?a=1&b=2),并将它们附加到 iframe 的基本 url。它适合我的目的。

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

This code takes the url-parameters (?a=1&b=2) from the page containing the iframe and attaches them to the base url of the iframe. It works for my purposes.

难理解 2024-12-13 06:10:46

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

You cannot set FIX iframe's src or prevent javascript/form submit to change its location. However you can put script to onload of the page and change action of each dynamic link.

俯瞰星空 2024-12-13 06:10:46
$(".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 并包含该表的数据。

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

this is what i use, no jquery needed for this. in this particular scenario for each table i have with an excel export icon this forces the iframe attached to that table to load the same page with a variable in the Query String that the page looks for, and if found response writes out a stream with an excel mimetype and includes the data for that table.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文