停止冒泡事件似乎在 Google 页面中的 Internet Explorer 上不起作用

发布于 2024-10-14 14:54:33 字数 462 浏览 4 评论 0原文

我正在浏览器扩展中工作。我在谷歌搜索页面的链接旁边放置了一些图标。这些图标会触发一些操作,我需要在用户单击它后停止气泡事件。 在简历中,父 div 标签不得知道这些图标的点击。

接下来的代码允许在所有浏览器中停止冒泡事件:

if (event.cancelBubble) {
        event.cancelBubble = true;
}
if (event.returnValue) {
        event.returnValue = false;
}
if (event.stopPropagation) {
        event.stopPropagation();
}
if (event.preventDefault) {
        event.preventDefault();
}

在 Firefox 中运行良好,但在这种情况下在 IE 中不起作用(至少版本 8)。有什么想法吗?

I am working in a browser extension. I am putting some icons next to links in google search pages. These icons trigger some actions and I need stop bubble events after user clicks on it.
In resume, parent div tags must not know about clicks on these icons.

Next code allow stop bubbling events in all browsers:

if (event.cancelBubble) {
        event.cancelBubble = true;
}
if (event.returnValue) {
        event.returnValue = false;
}
if (event.stopPropagation) {
        event.stopPropagation();
}
if (event.preventDefault) {
        event.preventDefault();
}

In Firefox works well but in this context not works in IE (version 8 at least). Any idea about it?

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

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

发布评论

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

评论(2

过度放纵 2024-10-21 14:54:34
if (event.cancelBubble) {
        event.cancelBubble = true;
}

这没有道理。仅当其计算结果已为 true(在布尔上下文中)时,它才将其设置为 true。去掉 if 子句(即总是无条件地设置它);设置不存在的值通常不会造成任何损害(除非您将其设置在具有丑陋实现的主机对象上)

if (event.cancelBubble) {
        event.cancelBubble = true;
}

This doesn't make sense. It only sets it to true if it already evaluates to true (in a boolean context). Get rid of the if clause (i.e. always set it unconditionally); setting a non-existant value usally doesn't do any harm (unless you are setting it on a host object which has an ugly implementation)

陌上青苔 2024-10-21 14:54:34

或者尝试将其设置为 false,如果您使用 true,该事件将触发事件被触发后出现的代码,当事件具有布尔值时,有时可能意味着您可以自由地控制该事件,如果您如果是的话,事件可能会执行其他函数。当设置为 false 时,事件将不会执行其他功能,但这仅取决于该功能的方式。

编码员制作了他的函数/代码。

但简单来说
“要处理或引发冒泡事件,控件必须重写 OnBubbleEvent 方法。”,这就是您执行相反操作的地方,如果您这样做,则不要重写。

如果您还没有读过这篇文章 http://msdn .microsoft.com/en-us/library/aa719644(v=vs.71).aspx 就像我说的那样做相反的事情。

; )

希望这对你以后有所帮助

or try setting it to false, if u use true, the event will fire the code that comes after the event has been fired, when an event has a boolean, it could sometimes mean that u have the freedom to control that event, if u say true, the event may execute other function(s). when saying false the event will not execute other functions, but that only depends on how that function.

coder made his function/code.

but in simple words
"To handle or to raise the bubbled event, a control must override the OnBubbleEvent method.", and thats where u do the opposite dont override if u did.

if u havent read this yet http://msdn.microsoft.com/en-us/library/aa719644(v=vs.71).aspx and like i said do the opposite.

; )

Hope this helps u out a bit

Laterss!

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