0

我的最终目标是在“我的页面”中捕获特定事件,同时将所有其他事件传递给 iFrame。起初我想尝试 z-index 并在 iFrame 上放置一个 div,但这会捕获所有事件。从这个网站上的答案中得到线索,但由于某种原因,它似乎不起作用。我是新手所以可能很简单,只是看不到,希望您指出错误。

这是我的测试:

<script language="javascript" type="text/javascript">
function fH() {alert("a trunk, Hello World!");}
function fG() {alert("a branch, Goodbye Moon!");}
function fS() {alert("a leaf, Here comes the sun!");}
function RightMouseDown() {return false;}   
x=document.getElementById("b");
x.addEventListener('click','fH()',false);
</script>

<body>
<div id="trunk" onmousedown="fH()"> <p id="branch" onmousedown="fG()">Stout and strong, <em onmousedown="fS()">green and broad</em></p></div>
<div id="t"><p id="b">Stout and strong, <em id="l">green and broad</em></p></div>
</body>
  • 当我在第一个 div 中单击“绿色和广泛”时,我得到 S、G、然后是 H 警报 - 气泡(Firefox 和 Chrome)
  • 我想反转并捕获所以认为 x=doc... 和 x.addEv... 会这样做,但在第二个 div 中没有任何动作???

第二次测试验证建议:

<body>
<div id="iframe" onmousedown="fH()"><h3>iFrame</h3></div>
<div id="wpane" onmousedown= "fG()"><h3>wPane</h3></div>
<body>

CSS:

#iframe {color: blue; position: absolute; border: 1px solid blue; top: 100px; left: 100px; z-index: 0;}
#wpane {color: black; border: 1px solid black; position: absolute; top: 115px; left: 135px; z-index: 0; opacity: 0;}

看起来我不知道什么是“隐形元素”......

4

1 回答 1

0

如果你想在 iframe 之间传递数据而不使用点击劫持(这通常是一个坏主意),你可能想看看OpenAjax Hub 2.0 PubSub(还有一个你可以使用的参考实现)

于 2012-11-06T20:21:23.403 回答