2013-10-16 85 views
0

我想提出一个有两个模式的Chrome扩展,并且每当图标点击弹出应该出现消息,解释到他是在什么模式下,用户。JavaScript的弹出消息仅出现一次

问题是该消息不会始终显示(弹出窗口本身被打开)。

我试过Google搜索它,但似乎没有很多人遇到过这个问题。

任何人都可以帮忙吗?

这里是我的代码:

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

没有得到显示什么信息?我在代码中看不到一个。 – Moob

+0

'myWindow.document.write(“

mode1

”);和myWindow.document.write(“

mode2

”);'当打开第一个弹出窗口应该说mode1,第二个应该说mode2 – r3x

回答

1

你必须写它后关闭文档:

myWindow.document.write("<p>mode2</p>"); 
myWindow.document.close(); 

UPDATE:这也可能是有用的命名你的目标,这样你就不会在每次链接时产生一个新的窗口点击,也许用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 
} 

我不能对此进行测试作为一个实际的浏览器扩展程序,但我已经a JSFiddle showing it working as html/js

+0

感谢或答案,但它不起作用。任何其他建议:( – r3x

+0

是的,看我的更新 – Moob

+0

试过了,但它没有工作。似乎由于某种原因,只有在我重新调整窗口大小或查看源代码后才加载文本。 – r3x