Javascript表单submital在webkit中工作,在其他地方失败
我编写这段代码是为了尝试将url作为post值发送到同一页面。该代码在chrome和safari中运行良好。。。但是在FF3和IE中失败了(最后一个我不太关心,但我需要它在firefox中工作)。在FF3和IE中,它会打开一个空白的新选项卡。关于webkit和其他浏览器通过javascript处理表单提交的方式之间的差异,我应该知道什么 我使用的代码是:Javascript表单submital在webkit中工作,在其他地方失败,javascript,firefox,forms,post,Javascript,Firefox,Forms,Post,我编写这段代码是为了尝试将url作为post值发送到同一页面。该代码在chrome和safari中运行良好。。。但是在FF3和IE中失败了(最后一个我不太关心,但我需要它在firefox中工作)。在FF3和IE中,它会打开一个空白的新选项卡。关于webkit和其他浏览器通过javascript处理表单提交的方式之间的差异,我应该知道什么 我使用的代码是: function posturl (url) { var myForm = document.createElement("f
function posturl (url) {
var myForm = document.createElement("form");
myForm.method="post" ;
var myInput = document.createElement("input") ;
myInput.setAttribute("name", "url") ;
myInput.setAttribute("value", url);
myForm.appendChild(myInput);
document.body.appendChild(myForm) ;
myForm.submit();
document.body.removeChild(myForm) ;
}
编辑:也许我应该补充一点,它的工作方式是在我的锚定标记中使用脚本作为href。因此,当您单击链接时,它会将参数通过post传递到同一页面,并相应地更新内容。这应该可以跨浏览器工作。但实际上,我认为您需要一个window.setTimeout,其值为0。发生的情况是,您试图在JavaScript有时间“呼吸”之前访问一个元素 尝试:
它适用于我的Firefox2和Chrome2。这是我的完整测试页面:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<script>
function posturl (url) {
var myForm = document.createElement("form");
myForm.method="post";
var myInput = document.createElement("input") ;
myInput.setAttribute("name", "url") ;
myInput.setAttribute("value", 'http://www.google.com');
myForm.appendChild(myInput);
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm);
}
</script>
</head>
<body>
<input type="button" value="posturl()" onclick="posturl()" />
</body>
函数姿势(url){
var myForm=document.createElement(“表单”);
myForm.method=“post”;
var myInput=document.createElement(“输入”);
setAttribute(“名称”、“url”);
myInput.setAttribute(“值”,”http://www.google.com');
appendChild(myInput);
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm);
}
一定有其他东西(可能与打开空白选项卡有关??WTF?)破坏了您的代码
为什么它在IE中不起作用。我想你的意思是用该代码替换方法的最后两行?我试过了,但它甚至在webkit中也不起作用。也许我应该补充一点,它的工作方式是在我的锚标记中使用脚本作为href。因此,当您单击链接时,它会通过post将参数传递到同一页面,更新内容。谢谢。我最终解决了我的问题,将javascript函数调用从a href中更改为用onclick替换。这似乎起到了作用。我想问题不在于剧本:)@Jarsen:你会发现IE还是把它搞砸了。请参阅我发布的链接。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<script>
function posturl (url) {
var myForm = document.createElement("form");
myForm.method="post";
var myInput = document.createElement("input") ;
myInput.setAttribute("name", "url") ;
myInput.setAttribute("value", 'http://www.google.com');
myForm.appendChild(myInput);
document.body.appendChild(myForm);
myForm.submit();
document.body.removeChild(myForm);
}
</script>
</head>
<body>
<input type="button" value="posturl()" onclick="posturl()" />
</body>