如何在我的 javascript 代码中获取此框架的名称

发布于 2024-10-14 14:03:02 字数 738 浏览 4 评论 0原文

这是我的html代码:

<frameset rows="18,*" frameborder=0 framespacing=0>
    <frame src="/zh-cn/MapS/MainTop/" noresize scrolling=no>
   <frameset cols="0,*,210" name="menu">
     <frame src="/zh-cn/MapS/MainLeft/" scrolling=no noresize>
     <frame src="/zh-cn/MapS/Watch/" name="desk">
     <frame src="/zh-cn/MapS/RightMenu/" scrolling=no noresize>
    </frameset>
  </frameset>

这是框架中的javascript代码:

parent.parent.frames[2].frames[0]

我想知道这个框架的名称是什么,

我这样做:

console.log(parent.parent.frames[2].frames[0].nodename)

它显示:

undefined

所以我能做什么,

谢谢

this is my html code :

<frameset rows="18,*" frameborder=0 framespacing=0>
    <frame src="/zh-cn/MapS/MainTop/" noresize scrolling=no>
   <frameset cols="0,*,210" name="menu">
     <frame src="/zh-cn/MapS/MainLeft/" scrolling=no noresize>
     <frame src="/zh-cn/MapS/Watch/" name="desk">
     <frame src="/zh-cn/MapS/RightMenu/" scrolling=no noresize>
    </frameset>
  </frameset>

and this is the javascript code in on frame :

parent.parent.frames[2].frames[0]

i want to know which name is this frame ,

i do this :

console.log(parent.parent.frames[2].frames[0].nodename)

it show:

undefined

so what can i do ,

thanks

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

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

发布评论

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

评论(7

探春 2024-10-21 14:03:02

例如,这应该可行

window.frameElement.name

此外,如果您拥有的只是对框架内元素的引用,并且想知道该元素所属的框架名称:

document.getElementsByTagName("body")[0].ownerDocument.defaultView.window.frameElement.name

For example, this should work

window.frameElement.name

Also, if all you have is a reference to an element inside a frame and want to know the frame name this element belongs to:

document.getElementsByTagName("body")[0].ownerDocument.defaultView.window.frameElement.name
一桥轻雨一伞开 2024-10-21 14:03:02

为什么这里所有的答案都这么复杂?

当前文档的名称(==框架名称)可以通过以下方式获取:

var sName = window.name;

如果当前文档是根文档或者父文档没有为子框架指定名称,则 sName 将为空字符串。

Why are all the answers here so complicated ?

The name of the current document (== frame name) can be obtained via:

var sName = window.name;

If the current document is the root document or if the parent document has not assigned a name to the child frame, sName will be an empty string.

海的爱人是光 2024-10-21 14:03:02

您好,

您可以创建一个函数来从框架内容中检索框架元素名称,如下所示:

function getFrameName(frame) {
    var frames = parent.frames, 
        l = frames.length, 
        name = null;

    for (var x=0; x<l; x++) {
        if (frames[x] === frame) {
            name = frames[x].name;
        }
    }

    return name;
}

然后在文档中调用它:

window.onload = function() {
    var body = document.getElementsByTagName("body")[0],
        name = getFrameName(self);

    if (name != null) {
        var text = document.createTextNode("this frame name is: " + name);

        body.appendChild(text);
    }
}

希望有所帮助。

Greetings,

You can create a function to retrieve the frame element name from within the frame content like that:

function getFrameName(frame) {
    var frames = parent.frames, 
        l = frames.length, 
        name = null;

    for (var x=0; x<l; x++) {
        if (frames[x] === frame) {
            name = frames[x].name;
        }
    }

    return name;
}

And then call it inside the document:

window.onload = function() {
    var body = document.getElementsByTagName("body")[0],
        name = getFrameName(self);

    if (name != null) {
        var text = document.createTextNode("this frame name is: " + name);

        body.appendChild(text);
    }
}

Hope that helps.

雪落纷纷 2024-10-21 14:03:02

这应该会给你 src 值。

console.log(parent.parent.frames[2].frames[0].location.href)

This should give you the src value.

console.log(parent.parent.frames[2].frames[0].location.href)
怂人 2024-10-21 14:03:02

将 HTML 更改为:


<html>
<frameset  rows="18,*">
    <frame name="MainTop" src="/zh-cn/MapS/MainTop/" scrolling="auto" frameborder="0">
    <frameset  cols="0,*,210">
        <frame name="MainLeft" src="/zh-cn/MapS/MainLeft/" scrolling="auto" frameborder="0">
        <frame name="Watch" src="/zh-cn/MapS/Watch/" scrolling="auto" frameborder="0">
        <frame name="RightMenu" src="/zh-cn/MapS/RightMenu/" scrolling="auto" frameborder="0">
    </frameset>
</frameset>
</html>

测试脚本:


console.log(parent.frames[2].name);

Change your HTML to this:


<html>
<frameset  rows="18,*">
    <frame name="MainTop" src="/zh-cn/MapS/MainTop/" scrolling="auto" frameborder="0">
    <frameset  cols="0,*,210">
        <frame name="MainLeft" src="/zh-cn/MapS/MainLeft/" scrolling="auto" frameborder="0">
        <frame name="Watch" src="/zh-cn/MapS/Watch/" scrolling="auto" frameborder="0">
        <frame name="RightMenu" src="/zh-cn/MapS/RightMenu/" scrolling="auto" frameborder="0">
    </frameset>
</frameset>
</html>

Test Script:


console.log(parent.frames[2].name);
執念 2024-10-21 14:03:02

为什么这么麻烦?
只需

frames.name

即可为您提供当前框架名称。

Why all that trouble?
Just

frames.name

gives you the current frame name.

深白境迁sunset 2024-10-21 14:03:02

当前页面:

location.pathname

当前页面的地址:

location.href

页面内的第一帧:

parent.frames[0].name

请注意:

window.document.location

Current page:

location.pathname

Current page's address:

location.href

First frame inside the page:

parent.frames[0].name

note that:

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