[JavaScript]js中window.open新窗口怎么实现post方式的参数传递
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[JavaScript]js中window.open新窗口怎么实现post方式的参数传递相关的知识,希望对你有一定的参考价值。
看到过这篇介绍没有搞明白
今天看到有篇文章写到 windows.open 可以post方式传递参数,就赶紧照作看看,结果是可行的,
感谢撰写这篇文章的作者~
/**
* window.open with post method
*/
function openWindowWithPost(url, name, keys, values)
var newWindow = window.open(url, name);
if (!newWindow)
return false;
var html = "";
html += "<html><head></head><body><form id='formid' method='post' action='" + url + "'>";
if (keys && values && (keys.length == values.length))
for ( var i = 0; i < keys.length; i++)
html += "<input type='hidden' name='" + keys[i] + "' value='" + values[i] + "'/>";
html += "</form><script type='text/javascript'>document.getElementById(\"formid\").submit()</script></body></html>";
newWindow.document.write(html);
return newWindow;
详细参考网址:http:// www. dotblogs. com.tw/puma/archive/2008/09/03/5288.aspx
表单(FORM)可以产生POST请求,但是却无法用在window.open方法中,你可以给表单添加target=_blank属性,使表单提交的结果显示在新的窗口(或标签页)中.
你补充的问题和你提问的标题说的好像不是一回事. 你补充的内容也是通过POST将数据发送到服务器,而非调用window.open的页面.
也许这就是你的本意,但你的问题确实很容易让人想到是两个窗口间的数据传递.追问
我就是想把数据通过POST穿到window.open的新窗口
在百度搜索 Window open() post 有不少关于这方面的
特别是这http ://yuxuguang.iteye. com/blog/895108 (地址中间不加空格老回复不了)
window.open以post方式提交 - 点滴 - ITeye技术网站
POST传值只能通过后端处理才能实现,直接用JS是无法实现的.
来自:求助得到的回答 参考技术A 这是先用window.open打开一个网址,然后直接写入新打开窗口的document, 在document中写入一个提交方式为post的form, 以及需要post的数据(用hidden元素),在document的最后则写入一个javascript脚本,将那个form提交给指定的网址。说白了,就是自己在新窗口中建立表单(form),然后post表单来实现所谓的post传递参数。 参考技术B 这是我自己用的方法,是可以的:
<script language="javascript">
function opennew()
var url="ttt2.asp"; //目标页面
document.form1.action=url;
var newwin = window.open('about:blank', 'newWindow', 'height=100,width=400,top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no');
document.form1.target = 'newWindow';//这一句是关键
document.form1.submit();
</script>
<form id="form1" name="form1" action="" method="post">
<input name="test" value="1111111111"/><input type="button" value="提交" onclick="opennew();" />
</form> 参考技术C myWindow=window.open('','MyName','width=200,height=100');myWindow=window.open('','MyName','width=200,height=100');myWindow.document.write("Thisis'myWindow'")myWindow.focus()myWindow.opener.opener.document.write("Thisistheparentwindow") 参考技术D varurl="file://10.70.12.73/XXXX"+Slink;varnw=top.window.open(url,"nw","width=700,height=670,scrollbars=yes,alwaysRaised=yes,depended=yes");//这句nw.document.title=Slink;这样就OK了。
悬停JavaScript超过3秒
我正在尝试编写普通的javascript,如果img悬停在javascript上,它将监听,如果图像悬停3秒钟,则会打开一个新标签页。目前我正在做这样的事情
img.addEventListener('mouseover', changeDefOver);
img.setAttribute( 'class', 'myCssClass' );
function changeDefOver(e) {
window.open("https://www.geeksforgeeks.org", "_blank");
}
但是这将立即执行,并且不会检查3秒钟。我也不能使用jQuery。有什么想法吗?
因此,请使用超时,如果用户离开该元素,则删除该超时。
function over() {
this.timeout = window.setTimeout(function () {
console.log('here')
}, 3000)
}
function left() {
if (this.timeout) window.clearTimeout(this.timeout)
}
img.addEventListener('mouseenter', over);
img.addEventListener('mouseleave', left);
弹出窗口阻止程序可能会阻止此操作,但是您可以使用setTimeout.
let hoverTimeout;
function changeDefOver(e) {
hoverTimeout = setTimeout(() => {
window.open("https://www.geeksforgeeks.org", "_blank");
}, 3000);
}
function clearHoverTimeout() {
clearTimeout(hoverTimeout);
}
但是您还需要清理超时:
img.addEventListener('mouseout', clearHoverTimeout);
以上是关于[JavaScript]js中window.open新窗口怎么实现post方式的参数传递的主要内容,如果未能解决你的问题,请参考以下文章