HTML/Javascript获取当前浏览器窗口并在超时时关闭它
我正在为greasemonkey编写一个小脚本,它应该从另一个页面提交表单(因此action属性与我要提交表单的页面不同)。我希望包含脚本的页面类似于www.pennergame.de/overview/,表单元素从www.pennergame.de/stock/foodies/use调用表单操作/ 当我单击输入按钮时,表单元素将被提交。 我现在想要的是,页面不会重定向到/stock/foodies/use/page 所以,我想 1.提交表单元素 2.使用/overview/链接打开一个新窗口,然后关闭当前窗口或停止重定向到/stock/Foodies/use/ 我试过这个:HTML/Javascript获取当前浏览器窗口并在超时时关闭它,javascript,html,forms,Javascript,Html,Forms,我正在为greasemonkey编写一个小脚本,它应该从另一个页面提交表单(因此action属性与我要提交表单的页面不同)。我希望包含脚本的页面类似于www.pennergame.de/overview/,表单元素从www.pennergame.de/stock/foodies/use调用表单操作/ 当我单击输入按钮时,表单元素将被提交。 我现在想要的是,页面不会重定向到/stock/foodies/use/page 所以,我想 1.提交表单元素 2.使用/overview/链接打开一个新窗口,
var overviewLink = 'http://www.pennergame.de/overview/';
var input_drink = document.createElement("input");
input_drink.type = 'submit';
input_drink.id = 'drink_Brot';
input_drink.value = 'Nüchtern werden (' + anzBrot + ' Brot essen)';
form.onsubmit = function (){ window.setTimeout('window.close()', 600); var fenster = window.open(overviewLink, '_blank'); };
实际情况是:表单已提交,新窗口将打开,但旧窗口不会关闭
请尽可能只使用JavaScript解决方案;-) 丹尼斯,我不确定我是否正确理解你的问题,但让我描述一下我从你的信息中得到了什么(如果有错误,请纠正我)。 您希望在当前页面上执行某些操作(如按下按钮),然后在另一个页面上调用表单提交。 此外,还需要防止出现新的窗口外观
打开子页面。易于操作(包括对用户隐藏)
createFrame
填充其他公司
提交给Monather公司
封闭框架
可变框架
,frameDoc
,框架形式
函数createFrame()
{
frame=document.createElement(“iframe”);
frame.src='prev.html'
frame.setAttribute('hidden','');//在调试时删除此行以查看帧
document.body.appendChild(框架);
}
函数fillFormOnAnotherPage()
{
//我们正在查找表单的页面的document对象
frameDoc=frame.contentDocument
//不知怎么找到你的表格
frameForm=frameDoc.getElementById('myFormId')
//是的,我们可以通过名称访问表单元素
var someInputElement=frameForm['myInputName']
//只需将所有需要的数据放到表单元素中
someInputElement.value=“来自其他页面的问候语”
}
函数submitFormOnAnotherPage()
{
frameForm.submit();
}
函数closeFrame()
{//如果您真的需要一个带超时的关闭,只需将此函数包装为setTimeout即可
document.body.removeChild(框架);
}
//从控制台或脚本调用此方法来完成所有的工作
函数doEverything()
{
createFrame()
FILLFORMONONATHERPAGE()
提交给MonatherPage()
closeFrame()
}
window.setTimeout(window.close,600)代码>附言。我看到您在setTimeout中使用字符串作为第一个参数。这是一种不安全的旧样式(目前已弃用)。您可以像下面这样传递匿名函数作为第一个参数setTimeout(function(){console.log(“Hallo”);},800)