点击新窗口,在新窗口中更改元素

时间:2018-03-21 12:32:32

标签: javascript google-apps-script

我正在使用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中执行此操作 - &gt;电子表格。生成一个提供链接的电子邮件,因此我认为我仅限于内联脚本。

1 个答案:

答案 0 :(得分:1)

您需要转义双引号或改为使用单引号:

&#13;
&#13;
var str = "text";
&#13;
<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>
&#13;
&#13;
&#13;

或者更好地使用函数,如果appscript允许的话:

&#13;
&#13;
var str = "text";

function openAndChangeText() {
  window.open('https://jsfiddle.net/ncw1L0uk/show/');
  document.getElementById('input1').value=str;
}
&#13;
<input type="text" value="" id="input1" />
<a href="javascript:openAndChangeText()">link</a>
&#13;
&#13;
&#13;

P.S。由于弹出窗口在嵌入式小提琴中被阻止,因此您无法在上述代码段中获得弹出窗口(请查看您的开发人员工具&#39;控制台)。

更新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>