It has to do with your browser's popup blocker. If you look closely at the error, it's describing the submit "button" as the problem, not the mapValue.input line.
The below code is working for me:
http://jsfiddle.net/WDFNL/
function openMapWindow (data) {
alert(data);
var mapForm = document.createElement("form");
mapForm.target = "Map";
mapForm.method = "POST"; // or "post" if appropriate
mapForm.action = "/map.php";
var mapInput = document.createElement("input");
mapInput.type = "text";
mapInput.name = "addrs";
mapInput.value = data;
mapForm.appendChild(mapInput);
document.body.appendChild(mapForm);
window.open("", "Map", "status=0,title=0,height=600,width=800");
mapForm.submit();
}
openMapWindow('-35.308401,149.124298-35.307841,149.124298');
I did get the error you're describing at first, but it had to do with my popup blocker. Once I authorized jsfiddle.net to be allowed popups, it started working.
EDIT
There is an easy way to test for this and alert the user if their popup blocker is disabling the map:
http://jsfiddle.net/WDFNL/1/
function openMapWindow (data) {
var mapForm = document.createElement("form");
mapForm.target = "Map";
mapForm.method = "POST"; // or "post" if appropriate
mapForm.action = "/map.php";
var mapInput = document.createElement("input");
mapInput.type = "text";
mapInput.name = "addrs";
mapInput.value = data;
mapForm.appendChild(mapInput);
document.body.appendChild(mapForm);
map = window.open("", "Map", "status=0,title=0,height=600,width=800");
if (map) {
mapForm.submit();
} else {
alert('You must allow popups for this map to work.');
}
}
openMapWindow('-35.308401,149.124298-35.307841,149.124298');
Note the map
variable. You can test it to see if window.open
returned a window handle, and act accordingly depending on the result.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…