我正在尝试通过javascript打开一个窗口,但它只是让人觉得无所事事。起初我以为它只是谷歌Chrome,但它在firefox和IE中也是如此。不确定我的问题是什么。 JSFiddle说“POST”,但我不确定。建议?
function romantic()
{
document.body.bgColor = "pink";
document.body.style.color = "red";
document.images[1].src = "rom_main.jpg";
// Searched online to find a script to override some styles.
// For loop with adding styles to each anchor didn't work for some reason. Kept being overriden somehow.
var styleElement = document.createElement("style");
styleElement.type = "text/css";
if (styleElement.styleSheet) {
styleElement.styleSheet.cssText = "a { color: red }";
} else {
styleElement.appendChild(document.createTextNode("a { color: red; }"));
}
document.getElementsByTagName("head")[0].appendChild(styleElement);
}
function adventure()
{
document.body.bgColor = "#CDAA7D";
document.body.style.color = "#5C3317";
document.images[1].src = "adv_main.jpg";
var styleElement = document.createElement("style");
styleElement.type = "text/css";
if (styleElement.styleSheet) {
styleElement.styleSheet.cssText = "a { color: #5C4033 }";
} else {
styleElement.appendChild(document.createTextNode("a { color: #5C4033; }"));
}
document.getElementsByTagName("head")[0].appendChild(styleElement);
}
function relax()
{
document.body.bgColor = "#B2DFEE";
document.body.style.color = "#00688B";
document.images[1].src = "rel_main.jpg";
var styleElement = document.createElement("style");
styleElement.type = "text/css";
if (styleElement.styleSheet) {
styleElement.styleSheet.cssText = "a { color: #000080 }";
} else {
styleElement.appendChild(document.createTextNode("a { color: #000080; }"));
}
document.getElementsByTagName("head")[0].appendChild(styleElement);
}
function family()
{
document.body.bgColor = "#F0E68C";
document.body.style.color = "#FFA54F";
document.images[1].src = "fam_main.jpg";
var styleElement = document.createElement("style");
styleElement.type = "text/css";
if (styleElement.styleSheet) {
styleElement.styleSheet.cssText = "a { color: #6B4226 }";
} else {
styleElement.appendChild(document.createTextNode("a { color: #6B4226; }"));
}
document.getElementsByTagName("head")[0].appendChild(styleElement);
}
function open()
{
mywindow = window.open("http://www.javascript-coder.com", "mywindow", "location=1,status=1,scrollbars=1, width=100,height=100");
mywindow.moveTo(0, 0);
}
答案 0 :(得分:1)
您的问题是您在“窗口”范围内定义了open。 JavaScript中定义的所有变量和函数都分配给window对象。以下具有相同的效果:
var myVar = 10;
window.myVar = 10;
这样做:
function open() { ... }
window.open = function() { ... }
所以你看,你的函数正在覆盖window.open并实际创建堆栈溢出。任何其他函数名称都应该有效,例如openWindow()
答案 1 :(得分:1)
老兄把你的功能名称更改为winopen:open是一个关键词IM SURE OF IT:
答案 2 :(得分:0)
我不确定这是否可以解决您的问题,但您在href中缺少哈希。
试
<a href="#" onclick="open()">Request A Brochure...</a>
而不是
<a href="" onclick="open()">Request A Brochure...</a>
运气
答案 3 :(得分:0)
您使用名为“open()”的函数。由于没有定义范围,因此将此函数放在“窗口”范围内(这意味着:您将覆盖标准的“window.open()”函数。
为你的功能命名,一切都应该有效;)