【发布时间】:2016-04-19 06:30:34
【问题描述】:
似乎无法在javascript中模拟右键。
我曾尝试右键单击 iframe 中的元素(段落),如下所示:
html
<button onclick="popup_context_menu_in_iframe()">
popup menu
</button>
<br/><br/>
<iframe srcdoc="<p>Hello world!</p>">
</iframe>
脚本
function popup_context_menu_in_iframe()
{
var $element = $('iframe').contents().find('p');
var element = $element.get(0);
if (window.CustomEvent) {
element.dispatchEvent(new CustomEvent('contextmenu'));
} else if (document.createEvent) {
var ev = document.createEvent('HTMLEvents');
ev.initEvent('contextmenu', true, false);
element.dispatchEvent(ev);
} else { // Internet Explorer
element.fireEvent('oncontextmenu');
}
}
https://jsfiddle.net/sca60d64/2/
似乎实际上不可能让上下文菜单出现,所以我需要寻找其他方法。
我首先创建了一个 chrome 扩展来向窗口对象添加一个函数,可以从任何使用一些额外功能的脚本调用。
然而,令人惊讶的是,chrome 扩展似乎没有为我提供在窗口对象中创建函数的方法。我还没有看它是否让我能够弹出上下文菜单。
在放弃之前,我没有对 chrome 扩展进行大量实验。
所以我需要另一个解决方案。
解决方案是否仅适用于 google chrome 或者无法保证它会在下一个版本中停止运行都没有关系。
我应该用 dll 挂钩 chrome 进程吗?是这样吗?
【问题讨论】:
-
在我的 iframe 示例中似乎无法做到这一点,问题已被编辑。
标签: javascript windows google-chrome