创建链接以在另一个窗口中运行javascript

创建链接以在另一个窗口中运行javascript,javascript,jquery,html,Javascript,Jquery,Html,我有一个链接,当点击它时,我希望打开一个新窗口,并在该窗口中运行一些javascipt代码。以下是我创建链接的方式: $('<a></a>').attr('href', 'javascript:my_func();').attr('target', '_blank') $('').attr('href',javascript:var w=window.open();w.innerHTML=“”;var script=w.document.createElement(“脚

我有一个链接,当点击它时,我希望打开一个新窗口,并在该窗口中运行一些javascipt代码。以下是我创建链接的方式:

$('<a></a>').attr('href', 'javascript:my_func();').attr('target', '_blank')
$('').attr('href',javascript:var w=window.open();w.innerHTML=“”;var script=w.document.createElement(“脚本”);script.textContent=lwv;w.document.getElementsByTagName(“头”)[0]。appendChild(脚本);”;

我得到一张空白页。如何将此解决方案合并到可单击链接中?

创建窗口,然后将
标记插入其DOM中

var w = window.open();
w.innerHTML = '<html><head></head></html>';
var script = w.document.createElement("script");
script.textContent = "alert('running');";
w.document.getElementsByTagName("head")[0].appendChild(script);
以下是您的代码的工作版本:

neighbor = {
    data: [1, 2, 3]
}
date = "today";
function load_wafer_viz_on_new_page(a, b) {
    alert(a + b);
}
window.lwv = load_wafer_viz_on_new_page.toString();
args = JSON.stringify(neighbor.data[0]) + ',' + JSON.stringify(date);
lwv += 'load_wafer_viz_on_new_page(' + args + ');'
$("a").attr('href', 'javascript:var w = window.open();w.innerHTML = "<html><head></head></html>";var script = w.document.createElement("script");script.textContent = lwv;w.document.getElementsByTagName("head")[0].appendChild(script);');
邻居={
数据:[1,2,3]
}
日期=“今天”;
功能加载即新页面上的功能加载(a、b){
警报(a+b);
}
window.lwv=在新页面上加载晶圆viz;
args=JSON.stringify(neighbor.data[0])+,'+JSON.stringify(date);
lwv+=“在新页面(“+args+”)上加载晶圆viz;”
$(“a”).attr('href',javascript:var w=window.open();w.innerHTML=“”;var script=w.document.createElement(“脚本”);script.textContent=lwv;w.document.getElementsByTagName(“head”)[0]。appendChild(script);”;

创建窗口,然后将
标记注入其DOM

var w = window.open();
w.innerHTML = '<html><head></head></html>';
var script = w.document.createElement("script");
script.textContent = "alert('running');";
w.document.getElementsByTagName("head")[0].appendChild(script);
以下是您的代码的工作版本:

neighbor = {
    data: [1, 2, 3]
}
date = "today";
function load_wafer_viz_on_new_page(a, b) {
    alert(a + b);
}
window.lwv = load_wafer_viz_on_new_page.toString();
args = JSON.stringify(neighbor.data[0]) + ',' + JSON.stringify(date);
lwv += 'load_wafer_viz_on_new_page(' + args + ');'
$("a").attr('href', 'javascript:var w = window.open();w.innerHTML = "<html><head></head></html>";var script = w.document.createElement("script");script.textContent = lwv;w.document.getElementsByTagName("head")[0].appendChild(script);');
邻居={
数据:[1,2,3]
}
日期=“今天”;
功能加载即新页面上的功能加载(a、b){
警报(a+b);
}
window.lwv=在新页面上加载晶圆viz;
args=JSON.stringify(neighbor.data[0])+,'+JSON.stringify(date);
lwv+=“在新页面(“+args+”)上加载晶圆viz;”
$(“a”).attr('href',javascript:var w=window.open();w.innerHTML=“”;var script=w.document.createElement(“脚本”);script.textContent=lwv;w.document.getElementsByTagName(“head”)[0]。appendChild(script);”;


\u blank
窗口没有内容(代码或html)。这就是为什么它们是“空白的”。如果您想在那里运行代码,那么您必须首先将代码添加到新窗口中。这听起来像是试图解决问题。你想做什么?我现在有一个链接,可以调用js函数,并在你所在的页面上创建新内容。但现在我想在一个新窗口中创建该内容。@acupajoe这不太一样,在这个问题中,他不想在新窗口中打开URL。尝试创建
html
作为字符串,包括jQuery、
script
元素,创建、检索
html
字符串中的内容,调用
window.open()
使用字符串作为
数据URI的内容
。尽管请求的资源应该具有
允许控制允许源文件
标题
\u blank
窗口没有内容(代码或html)。这就是为什么它们是“空白的”。如果您想在那里运行代码,那么您必须首先将代码添加到新窗口中。这听起来像是试图解决问题。你想做什么?我现在有一个链接,可以调用js函数,并在你所在的页面上创建新内容。但现在我想在一个新窗口中创建该内容。@acupajoe这不太一样,在这个问题中,他不想在新窗口中打开URL。尝试创建
html
作为字符串,包括jQuery、
script
元素,创建、检索
html
字符串中的内容,调用
window.open()
使用字符串作为
数据URI的内容
。虽然请求的资源应该具有
Allow Control Allow Origin
header,但我如何制作
script.textContent
是我在当前页面中可以访问的js函数的内容?您可以使用
function.toString()
将函数定义为字符串。酷,我不知道该函数。那么函数的参数呢。我如何将这些添加到stringafied函数中?我添加了一个如何向函数添加调用的示例。我更新了我的原始帖子,以展示我的代码现在是如何运行的。我不知道如何将您的解决方案集成到我的可点击链接中。我如何使
script.textContent
成为我在当前页面中可以访问的js函数的内容?您可以使用
function.toString()
将函数定义为字符串。酷,我不知道该函数。那么函数的参数呢。我如何将这些添加到stringafied函数中?我添加了一个如何向函数添加调用的示例。我更新了我的原始帖子,以展示我的代码现在是如何运行的。我不知道如何将您的解决方案集成到我的可点击链接中。