我正在尝试使用JQuery在新窗口中填充表单,但我似乎无法使其工作,它当前打开所需的新窗口。但任何填充表单的尝试都会失败。
$( "body" ).delegate( ".propose", "click",function() {
var url = './prop_form.php';
var win = window.open(url, 'Marketing Docs', 'directories=no,menubar=no,scrollbars=yes,status=no,toolbar=no,location=no,resizable=yes,width=500,height=600');
$(win).find('input[name=vrm]').val('x');
if (win.focus) { win.focus(); }
});
脚本应填充名为vrm的文本输入。
答案 0 :(得分:0)
更新(再次),我在使用加载事件后终于开始工作了:
$("body").delegate(".propose", "click", function () {
var url = './prop_form.php';
var win = window.open(url, 'Marketing Docs', 'menubar=no,scrollbars=yes,status=no,toolbar=no,location=no,resizable=yes,width=500,height=600');
$(win).load( function() {
$(win.document).find('input[name="vrm"]').val('x');
$(win.document).find('input[name="vrm"]').focus();
});
});
替代setTimeout
方法
$("body").delegate(".propose", "click", function () {
var url = './prop_form.php';
var win = window.open(url, 'Marketing Docs', 'menubar=no,scrollbars=yes,status=no,toolbar=no,location=no,resizable=yes,width=500,height=600');
setTimeout(function() {
$(win.document).find('input[name="vrm"]').val('x');, 2000); });
});
我使用Chrome测试了代码,发现其中一个window.open
参数属性已过时:directories=yes|no|1|0。删除该参数后,window.open
方法开始工作。