我所拥有的是像这样的嵌套iframe
<iframe id="is Static">
stuff
<iframe id="Is Dynmic>
<html>...</html>
<body id="This is thebody"> other stuff </body>
我有一些代码可以监听正文的鼠标向上事件,用于检测何时选择文本。我绑定事件监听器的方式就像这样
$(window).load(function() {
var listOfEditor = editorIds.split(",");
for (var i = 0; i < listOfEditor.length; i++) {
var currentFrame = $("#" + listOfEditor[i] + "_ifr");
if (currentFrame.exists()) {
currentFrame.contents().find("body").each(function () {
$(this).on("mouseup", function () {
console.log(window.frameElement.contentWindow.getSelection());
console.log(window.frames);
console.log(window.parent);
console.log($(this).parent("iframe");
});
}
);
}
};
从上面我可以看到,我有一个Id列表。 Id名称对应于页面上的各种iframe,并使用该列表找到每个iframe的主体并绑定事件侦听器以获取所选文本depedning iframe具有所选文本。我遇到的问题是使用window
对象获取具有静态名称的父iframe,但我想要的是对包含body元素的内部iframe的引用。完整的代码看起来像这样
<iframe id="is Static">
<script>
$(window).load(function() {
var listOfEditor = editorIds.split(",");
for (var i = 0; i < listOfEditor.length; i++) {
var currentFrame = $("#" + listOfEditor[i] + "_ifr");
if (currentFrame.exists()) {
currentFrame.contents().find("body").each(function () {
$(this).on("mouseup", function () {
console.log(window.frameElement.contentWindow.getSelection());
console.log(window.frames);
console.log(window.parent);
console.log($(this).parent("iframe");
});
}
);
}
};
</script>
stuff
<iframe id="Is Dynmic>
<html>...</html>
<body id="This is thebody"> other stuff </body>
从父Iframe级别执行$(window).load
的位置。我已经看到了各种问题,但它们是关于从子iframe中访问父iframe,或访问子iframe中的元素。