Javascript 如何在新窗口(打开后)中执行代码?

Javascript 如何在新窗口(打开后)中执行代码?,javascript,Javascript,通过我的代码,我将打开一个新窗口,并通过双击收集一些文本,代码是- document.addEventListener('dblclick',function (event) { var element = document.getElementsByClassName(event.target.parentElement.parentElement.parentElement.className); var T= window.open("", "MsgWindow", "width=200,

通过我的代码,我将打开一个新窗口,并通过双击收集一些文本,代码是-

document.addEventListener('dblclick',function (event) {
var element = document.getElementsByClassName(event.target.parentElement.parentElement.parentElement.className);
var T= window.open("", "MsgWindow", "width=200,height=500");
T.document.write(element[0].innerText.replace(/\n/g, "<br/>"));
},false);
上面的代码将在鼠标使用
window.getSelection().toString()
进行选择后收集单词

我该怎么做


PS:这不是一个重复的问题,因为这两部分将在同一个脚本中。

我认为,您应该在“MsgWindow”窗口中附加一个
脚本
节点

编辑(完整代码):

使用以下代码创建新的
script.js
-文件:

window.addEventListener(
  "keydown",
  function(e) {
    if (e.keyCode === 16) {
      var text = "";
      if (window.getSelection) {
        text_1 = window.getSelection().toString();
        text = text_1
                .replace(/\n|\r/g, " ")
                .replace(/\s/, "");
      }
        words = text.split(" ");
        console.log(words);
    }
  },
  false
);
然后,触发新窗口的代码应该如下所示:

document.addEventListener('dblclick',function (event) {
var element = document.getElementsByClassName(event.target.parentElement.parentElement.parentElement.className);
var T= window.open("", "MsgWindow", "width=200,height=500");
T.document.write(element[0].innerText.replace(/\n/g, "<br/>"));
T.document.createElement('script');
script.src = *path to your script.js-file*;
T.document.head.appendChild(script);
},false);
document.addEventListener('dblclick',函数(事件){
var element=document.getElementsByClassName(event.target.parentElement.parentElement.parentElement.parentElement.className);
var T=窗口打开(“,”MsgWindow“,”宽度=200,高度=500”);
T.document.write(元素[0].innerText.replace(/\n/g,“
”); T.document.createElement(“脚本”); script.src=*指向script.js文件的路径*; T.document.head.appendChild(脚本); },假);
我认为,您应该在“MsgWindow”窗口中附加一个
脚本
节点

编辑(完整代码):

使用以下代码创建新的
script.js
-文件:

window.addEventListener(
  "keydown",
  function(e) {
    if (e.keyCode === 16) {
      var text = "";
      if (window.getSelection) {
        text_1 = window.getSelection().toString();
        text = text_1
                .replace(/\n|\r/g, " ")
                .replace(/\s/, "");
      }
        words = text.split(" ");
        console.log(words);
    }
  },
  false
);
然后,触发新窗口的代码应该如下所示:

document.addEventListener('dblclick',function (event) {
var element = document.getElementsByClassName(event.target.parentElement.parentElement.parentElement.className);
var T= window.open("", "MsgWindow", "width=200,height=500");
T.document.write(element[0].innerText.replace(/\n/g, "<br/>"));
T.document.createElement('script');
script.src = *path to your script.js-file*;
T.document.head.appendChild(script);
},false);
document.addEventListener('dblclick',函数(事件){
var element=document.getElementsByClassName(event.target.parentElement.parentElement.parentElement.parentElement.className);
var T=窗口打开(“,”MsgWindow“,”宽度=200,高度=500”);
T.document.write(元素[0].innerText.replace(/\n/g,“
”); T.document.createElement(“脚本”); script.src=*指向script.js文件的路径*; T.document.head.appendChild(脚本); },假);
dblclick
事件中调用
T
上的
addEventListener
,然后参考
T
而不是那里的
窗口
。并参考
T.console
,而不仅仅是
console

document.addEventListener('dblclick', function(event) {
  var element = document.getElementsByClassName(event.target.parentElement.parentElement.parentElement.className);
  var T = window.open("", "MsgWindow", "width=200,height=500");
  T.document.write(element[0].innerText.replace(/\n/g, "<br/>"));

  T.addEventListener(
    "keydown",
    function(e) {
      if (e.keyCode === 16) {
        var text = "";
        if (T.getSelection) {
          text_1 = T.getSelection().toString();
          text = text_1
            .replace(/\n|\r/g, " ")
            .replace(/\s/, "");
        }
        words = text.split(" ");
        T.console.log(words);
      }
    },
    false
  );

}, false);
document.addEventListener('dblclick',函数(事件){
var element=document.getElementsByClassName(event.target.parentElement.parentElement.parentElement.parentElement.className);
var T=窗口打开(“,”MsgWindow“,”宽度=200,高度=500”);
T.document.write(元素[0].innerText.replace(/\n/g,“
”); T.addEventListener( “按下键”, 职能(e){ 如果(如keyCode===16){ var text=“”; if(T.getSelection){ text_1=T.getSelection().toString(); text=text_1 .替换(/\n |\r/g,“”) .替换(/\s/,“”); } 单词=文本。拆分(“”); T.console.log(字); } }, 假的 ); },假);

请参见此处的示例:

dblclick
事件中调用
T
上的
addEventListener
,然后参考
T
而不是此处的
窗口
。并参考
T.console
,而不仅仅是
console

document.addEventListener('dblclick', function(event) {
  var element = document.getElementsByClassName(event.target.parentElement.parentElement.parentElement.className);
  var T = window.open("", "MsgWindow", "width=200,height=500");
  T.document.write(element[0].innerText.replace(/\n/g, "<br/>"));

  T.addEventListener(
    "keydown",
    function(e) {
      if (e.keyCode === 16) {
        var text = "";
        if (T.getSelection) {
          text_1 = T.getSelection().toString();
          text = text_1
            .replace(/\n|\r/g, " ")
            .replace(/\s/, "");
        }
        words = text.split(" ");
        T.console.log(words);
      }
    },
    false
  );

}, false);
document.addEventListener('dblclick',函数(事件){
var element=document.getElementsByClassName(event.target.parentElement.parentElement.parentElement.parentElement.className);
var T=窗口打开(“,”MsgWindow“,”宽度=200,高度=500”);
T.document.write(元素[0].innerText.replace(/\n/g,“
”); T.addEventListener( “按下键”, 职能(e){ 如果(如keyCode===16){ var text=“”; if(T.getSelection){ text_1=T.getSelection().toString(); text=text_1 .替换(/\n |\r/g,“”) .替换(/\s/,“”); } 单词=文本。拆分(“”); T.console.log(字); } }, 假的 ); },假);

参见此处示例:

@Mike,此链接是什么?我说的是
document.createElement('script')
。我要求您使用上面给出的部分给出完整的代码,就像您的方法不适用于我给出的示例
script.src=“C:\Users\TTM\Desktop\selected\u txt.js”你确定你的方法有效吗?@Mike,这是什么链接?我说的是
document.createElement('script')
。我要求您使用上面给出的部分给出完整的代码,就像您的方法不适用于我给出的示例
script.src=“C:\Users\TTM\Desktop\selected\u txt.js”你确定你的方法有效吗?