我正在制作一个有两种模式的chrome扩展程序,每当点击该图标时,都会出现一条弹出消息,向用户解释他所处的模式。
问题是消息不会始终显示(弹出窗口本身会被打开)。
我试过谷歌搜索,但似乎没有很多人遇到这个问题。
有人可以帮忙吗?
这是我的代码:
function openWin1()
{
myWindow=window.open('','','width=500,height=500,toolbar=0, location=0, status=0, menubar=0, scrollbars=0, resizable=0');
myWindow.moveTo(500,100);
myWindow.document.write("<p>mode1</p>");
myWindow.focus();
}
function openWin2()
{
myWindow=window.open('','','width=500,height=500,toolbar=0, location=0, status=0, menubar=0, scrollbars=0, resizable=0');
myWindow.moveTo(500,100);
myWindow.document.write("<p>mode2</p>");
myWindow.focus();
}
chrome.browserAction.onClicked.addListener(onClickExtensionIcon);
function onClickExtensionIcon(tab)
{
if(hasAPrise)
{
hasAPrise = false;
chrome.browserAction.setIcon({path: '/icon.png'});
openWin1(); //open the first popup
}
else
{
openWin2(); //open the second popup
}
}
提前致谢
编辑:我注意到,如果我最大化并最小化弹出几次,则会显示该消息。此外,当我检查弹出源时,它的消息是正确的。这是有趣的。任何想法如何解决这一问题。
答案 0 :(得分:1)
写完之后你必须关闭文件:
myWindow.document.write("<p>mode2</p>");
myWindow.document.close();
更新:为目标命名可能也很有用,这样每次点击链接时都不会产生新窗口,也可能将内容包装在html中。
function openWin1(){
myWindow=window.open('','popup1','width=500,height=500,toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable=0');
myWindow.moveTo(500,100);
myWindow.document.write("<html><head><title>Popup1</title></head><body>I am popup 1</body></html>");
myWindow.document.close();
myWindow.focus();
myWindow.resizeTo(499,499); //UPDATE: force resize because OP is getting improved results after window resize
}
我无法将其作为实际的Chrome扩展程序进行测试,但我已将a JSFiddle showing it working as html/js