我正在尝试创建一个IE上下文菜单项,指向这里描述的Javascript html文件https://msdn.microsoft.com/en-us/library/bb735853(v=vs.85).aspx#IEAddOnsMenus_topic1 在“添加到上下文菜单”部分下。我在HKCU \ Software \ Microsoft \ Internet Explorer \ MenuExt中列出了上下文菜单条目 它指向一个带有javascript的html文件。这是我正在使用的Javascript代码。
<script language="JavaScript">
function pausescript(ms) {
ms += new Date().getTime();
while (new Date() < ms){}
}
{
var win = window.open("http://www.example.com");
pausescript(2000);
win.close();
}
</script>
我正在尝试弹出一个窗口到网址然后等待2秒并关闭窗口。它正在工作,但当它关闭弹出窗口由于某种原因IE失去焦点,除IE之外的任何其他窗口重新获得焦点,即使我从IE上下文菜单强制弹出。弹出窗口关闭后如何让IE获得焦点?
答案 0 :(得分:0)
您的问题是如何设置注册表。我使用Windows 8.1并以这种方式设置注册表:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER \ Software \ Microsoft \ Internet Explorer \ MenuExt \&amp; Live Search] @ = “C:\ USR \的StackOverflow \ livesearch.htm” “上下文”= DWORD:00000001
一切正常(你的剧本)。
就像你可以看到,Contexts的值与指南中描述的值不同(而不是我使用的是0x10)。
说你需要重新启动浏览器是没有用的。
焦点问题
关闭窗口窗口后,IE失去焦点。
如MSDN中所述,您需要访问external.menuArguments属性以获取当前窗口处理程序,即。
所以javascript代码是:
<script language="JavaScript">
function pausescript(ms) {
ms += new Date().getTime();
while (new Date() < ms){}
}
{
var win = window.open("http://www.example.com");
pausescript(2000);
win.close();
try {
// access the current browser window
var parentwin = external.menuArguments;
// get the document element
var doc = parentwin.document;
// focus it
doc.body.focus();
} catch(ex) {
alert(ex);
}
}
</script>