我正在使用 onclick 打开链接。我正在尝试使用 JS 更新窗口中的输入框。我尝试过这样做:
var str = "text";
<a href="javascript:void(0);" onclick="window.open('https://jsfiddle.net/ncw1L0uk/show/');document.getElementById("input1").value=str;">link</a>
我正在 Google 表单 -> 电子表格内的 appscript 中执行此操作。生成的电子邮件提供了链接,因此我认为我仅限于内联脚本编写。
最佳答案
您需要转义双引号或使用单引号:
var str = "text";
<input type="text" value="" id="input1" />
<a href="javascript:void(0);" onclick="window.open('https://jsfiddle.net/ncw1L0uk/show/');document.getElementById('input1').value=str;">link</a>
或者如果 appscript 允许的话最好使用函数:
var str = "text";
function openAndChangeText() {
window.open('https://jsfiddle.net/ncw1L0uk/show/');
document.getElementById('input1').value=str;
}
<input type="text" value="" id="input1" />
<a href="javascript:openAndChangeText()">link</a>
P.S.您不会在上述代码片段中看到弹出窗口,因为弹出窗口被嵌入的 fiddle 阻止(检查您的开发人员工具的控制台)。
更新1
如果您想更改新打开的窗口中元素的文本,您需要打开它,等待它加载,然后更改输入的值。
var str = "text";
function openAndChangeText() {
var win= window.open('https://jsfiddle.net/ncw1L0uk/show/');
win.onload= function() {
win.document.getElementById('input1').value=str;
}
}
<a href="javascript:openAndChangeText()">link</a>
发布的代码再次无法在 JSFiddle 中运行,因为弹出策略阻止打开窗口。
更新2
如果您无法使用普通函数,请在链接内使用闭包:
<a href="javascript:(function() { var str= 'Test1'; var win= window.open('https://jsfiddle.net/ncw1L0uk/show/'); win.onload=function() { win.document.getElementById('input1').value=str;}})()">Click</a>
关于javascript - 单击新窗口,在新窗口中更改元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49406447/