Jquery 或 js 如何操作主页面下 iframe 里的锚点?

2020-04-13 08:51:04 +08:00
 canadahetian

主页里包含了一个 iframe, JS 代码只能写在主页面里, 是否可以实现通过 主页面的 js 脚本,操作 iframe 里的锚点属性 主页面 点击 跳转到 iframe 下的对应锚点元素 testpoint

请各位前端前辈,指点一下.非常感谢!

2176 次点击
所在节点    问与答
23 条回复
canadahetian
2020-04-13 23:03:43 +08:00
@cydian 哥们,你的理解能力真的是,幸好没联想到鸦片战争?
你从哪几个关键字,联想到我歧视百度的?
我的意思是说,我的代码都已经精简完,放在哪里了.你就看着代码,直接指点不就可以了吗?
还单独又起一个名字,把之前
document.querySelector("iframe").contentWindow 这个方法,改成了
document.getElementById('id').contentWindow
这么改有什么区别吗?大神?
cydian
2020-04-13 23:19:24 +08:00
@canadahetian 抱歉 之前的一些回复可能漏掉了。
但是今天我测试过了。
同域条件下,
我今天谷歌控制台直接运行,
是完全正常的。没有出现报错。
canadahetian
2020-04-14 06:07:57 +08:00
@cydian 是这样,我已经解决了,但是没用你的方法,因为你 d 俄方法 Chrome 控制台,就报错,
我的思路和你分享一下:

首先我之前一直在找高度, 花费了很长时间,用 offsetTop 属性去找高度,发现不管怎么找,永远都是 0,我在 stackflow 上看到有一个人他和我用同样的方法,结果找到的却不是 0, 于是看了一下 scrollTo 方法的各版本的介绍,原来我定位的 iframe 里面的元素高度,是 A 标签,然而 A 标签里面没有给值,所以死活是找不到的.
于是我给 A 标记的父标记,添加了一个 ID 属性(为了方便查找)

var iframe__tag = $("#iframename").getElementsByClassName("a_class_name")

$.each(iframe__tag , function (index, element) {

var h_name = element.parentElement.innerText.replace(/\s+/g, "-
").toLowerCase().replace(/。|\.|\,|\,|\.|\:|\;|\./g, "");

element.parentElement.id = h_idname
// console.log(element.parentElement);

});

var scroll_y = $("#iframename").documentElement.getElementById(x_text).offsetTop

window.scrollTo(0, scroll_y) //直接跳转到标签部分

以上就是思路,感谢回复.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/661808

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX