我的代码如下:
HTML
<p>Click the button to open an about:blank page in a new browser window that is 200px wide and 100px tall.</p>
<button onclick="popitup2()">Open Window</button>
的JavaScript
function popitup2() {
newwindow2 = window.open('', 'name', 'height=200,width=150');
var tmp = newwindow2.document;
tmp.write('<html><head><title>popup</title>');
tmp.write('<link rel="stylesheet" href="js.css">');
tmp.write('</head><body><p>this is once again a popup.</p>');
tmp.write('<p><a href="javascript:alert(self.location.href)">view location</a>.</p>');
tmp.write('<p><a href="javascript:self.close()">close</a> the popup.</p>');
tmp.write('</body></html>');
tmp.close();
}
当我在Firefox中运行时:弹出窗口的地址栏就像&#34; http://www.w3schools.com/js/tryit_view.asp?x=0.695266304636076&#34;
当我在Chrome中运行相同内容时:弹出窗口的地址栏就像&#34; about:blank&#34;
我的问题是:
为什么两个浏览器的不同之处即使我使用相同的代码段? 如何在所有浏览器中为弹出窗口创建公共地址栏(url)?
即使我的应用程序也遇到此问题。 我很想知道这个的根本原因。有人可以解释一下吗?
答案 0 :(得分:1)
当你开始使用网页开发时,你会注意到很多这样的不一致 - 重要的是要记住,虽然HTML / CSS / Javascript都有书面规范和标准,但它取决于浏览器制造商实施这些标准,并且他们经常选择以一种浏览器与另一种浏览器之间的小(或大)方式变化的方式这样做。您会注意到在某些移动浏览器上(例如iPhone上的浏览器(以及我所听到的,新的金丝雀版Chrome),地址栏甚至不显示普通网页的完整网址,而只显示根网址该网站。这是我们作为Web开发人员必须要接受的东西 - 如果它不是技术规范的硬性和快速部分,我们不能总是期望事物的行为一致或按照我们期望的方式。