Javascript Window.open,检查是否有相同的div内容
我想创建一个包含以下内容的弹出窗口:Javascript Window.open,检查是否有相同的div内容,javascript,html,Javascript,Html,我想创建一个包含以下内容的弹出窗口: 当用户单击显示div 1内容的div 1时打开弹出窗口 若弹出窗口中已经存在div 1的内容,并且用户单击div 1,则不执行任何操作 当用户单击div2时,清除弹出窗口并显示div2的内容 我尝试了以下方法,但条件语句始终为true,因为新弹出窗口始终包含单击的div的内容 你能给我一些建议吗 最好使用纯javascript HTML: 删除if语句之前的returnfalse。返回立即退出函数,之后的任何代码都不会运行 JSFiddle: 谢谢。但是
- 当用户单击显示div 1内容的div 1时打开弹出窗口李>
- 若弹出窗口中已经存在div 1的内容,并且用户单击div 1,则不执行任何操作
- 当用户单击div2时,清除弹出窗口并显示div2的内容李>
删除
if
语句之前的returnfalse
。返回立即退出函数,之后的任何代码都不会运行
JSFiddle:
谢谢。但是当我说“什么也不做”时,如果弹出窗口中存在div1内容,我的意思是div1不应该是可点击的,所以多次点击div1应该失败。(即弹出窗口不应刷新,父窗口将覆盖弹出窗口)
您应该在尝试打开弹出窗口之前进行检查
jsidle:除了返回false之外,您还将首先将div的值赋给window,然后进行检查,这当然会始终返回true
function basicPopup(url,t1) {
popupWindow = window.open(url,'popUpWindow','height=500,width=500,left=100,top=100, resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no, status=yes');
if(popupWindow.document.body.innerHTML==t1.innerHTML){
return false; //if equal do nothing
}
else {
popupWindow.document.body.innerHTML='';
popupWindow.document.write(t1.innerHTML);
}
}
我删除了以下两项:
popupWindow.document.body.innerHTML = t1.innerHTML;
return false; //make sure parent window doesn't refresh
更新:
事实上,我们在这里想得太多了。仅指定新值似乎也会执行相同的操作,只是每次都会填充内容:
function basicPopup(url,t1) {
popupWindow = window.open(url,'popUpWindow','height=500,width=500,left=100,top=100, resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no, status=yes');
popupWindow.document.body.innerHTML = t1.innerHTML;
}
在IFs之前,返回值为false。返回后不会发生任何事情。我知道您编写的最后一段代码,但它总是在不检查内容的情况下加载弹出窗口。我想明确地说,如果弹出内容等于单击的内容,那么什么也不做(即div将不可点击,弹出窗口将位于父窗口下方),这正是第一块代码所做的。仅当尚未分配时才分配。你所做的是首先盲目地分配,然后用分配的数据检查分配的数据,这总是正确的。放弃第二个块(更新的),然后尝试我的代码的第一个块。谢谢。但是当我说“什么也不做”时,如果弹出窗口中存在div1内容,我的意思是div1不应该是可点击的,所以多次点击div1应该失败。(即弹出窗口不应刷新,父窗口将覆盖弹出窗口)@AA我已为此添加了一个解决方案。
function basicPopup(url,t1) {
popupWindow = window.open(url,'popUpWindow','height=500,width=500,left=100,top=100, resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no, status=yes');
if(popupWindow.document.body.innerHTML==t1.innerHTML){
return false; //if equal do nothing
}
else {
popupWindow.document.body.innerHTML='';
popupWindow.document.write(t1.innerHTML);
}
}
popupWindow.document.body.innerHTML = t1.innerHTML;
return false; //make sure parent window doesn't refresh
function basicPopup(url,t1) {
popupWindow = window.open(url,'popUpWindow','height=500,width=500,left=100,top=100, resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no, status=yes');
popupWindow.document.body.innerHTML = t1.innerHTML;
}