在document.write()中调用JavaScript函数

在document.write()中调用JavaScript函数,javascript,html,Javascript,Html,当我单击document.write()中的SWF part1链接时,我试图调用openswf函数,但我的问题是当我单击SWF part1链接时,什么也没有发生 这是我的密码 <html> <a href="#" onclick="Popup();">show popup</a> <script> function openswf(){ console.log("Do something") }

当我单击document.write()中的
SWF part1
链接时,我试图调用
openswf
函数,但我的问题是当我单击
SWF part1
链接时,什么也没有发生

这是我的密码

<html>
    <a href="#" onclick="Popup();">show popup</a>

<script>
    function openswf(){
        console.log("Do something")

    }
    function Popup()
    {
        var win = window.open('', '',"toolbar=no, width=1000, height=800");
        var doc = win.document.open();
        doc.write('<a href="javascript:openswf();">SWF part1</a>');
        doc.close();
    }

</script>
</html>

函数openswf(){
log(“做点什么”)
}
函数Popup()
{
var win=window.open(“”,,“toolbar=no,width=1000,height=800”);
var doc=win.document.open();
文件写入(“”);
doc.close();
}

首先,我单击“显示弹出窗口”链接以调用
popup()
函数并打开新的弹出窗口,该窗口工作正常,然后我想单击该弹出窗口中的
SWF part1
链接,但它不工作。

它可能调用默认的
”;
doc.close();
}

让我知道它是否有用。

它可能正在调用默认的
”;
doc.close();
}

如果有帮助,请告诉我。

openswf
不是在弹出窗口中定义的,而是在主窗口中定义的。但是,您可以使用
打开器
引用主窗口。我假设您希望在用户单击时关闭弹出窗口:

doc.write('<a href="javascript:opener.openswf();close();">SWF part1</a>');
doc.write(“”);

openswf
不是在弹出窗口中定义的,而是在主窗口中定义的。但是,您可以使用
打开器
引用主窗口。我假设您希望在用户单击时关闭弹出窗口:

doc.write('<a href="javascript:opener.openswf();close();">SWF part1</a>');
doc.write(“”);

对于初学者,变量“path”没有传递到新窗口。用这个代替

function Popup(path)
{
    var win = window.open('', '',"toolbar=no, width=1000, height=800");
    var doc = win.document.open();
    doc.write('<a href="javascript:openswf('+path+');">SWF part1</a>');
    doc.close();
}
功能弹出窗口(路径)
{
var win=window.open(“”,,“toolbar=no,width=1000,height=800”);
var doc=win.document.open();
文件写入(“”);
doc.close();
}

对于初学者,变量“path”没有传递到新窗口。用这个代替

function Popup(path)
{
    var win = window.open('', '',"toolbar=no, width=1000, height=800");
    var doc = win.document.open();
    doc.write('<a href="javascript:openswf('+path+');">SWF part1</a>');
    doc.close();
}
功能弹出窗口(路径)
{
var win=window.open(“”,,“toolbar=no,width=1000,height=800”);
var doc=win.document.open();
文件写入(“”);
doc.close();
}

感谢您的回复,我尝试了一下,但它仍然不起作用,它的错误是这样的“ReferenceError:openswf未定义”谢谢您的回复,我尝试了一下,但它仍然不起作用,它的错误是这样的“ReferenceError:openswf未定义”路径是什么?@trincot这只是一个演示代码,现在我只想单击链接并调用openswf()function.OK,但最好从您的问题中删除
path
。实际上,它会产生一个错误。最好确保你的代码没有问题,除了你要解决的问题。什么是
path
,它从哪里得到值?@trincot这只是一个演示代码,现在我只想单击链接并调用openswf()函数。好的,但是最好从你的问题中删除
path
。实际上,它会产生一个错误。最好确保你的代码没有问题,除了你要解决的问题。即使定义了
路径
,这也行不通。@user4723924对不起,实际上这只是一个演示代码,但我想要的是单击链接并执行openswf(),现在我已经编辑了问题中的代码并得到了答案,感谢您的回复:)即使定义了
path
,这也行不通。@user4723924很抱歉,实际上这只是一个演示代码,但我想要的是单击链接并执行openswf(),现在我已经编辑了问题中的代码并得到了答案,感谢您的回复:)我可以问更多的问题吗?我如何使用openswf()传递变量,因为我尝试使用此代码
doc.write(“
”)但它的错误如下
丢失)在参数列表之后
我现在得到了答案,我尝试使用此代码
doc.write(“
”)感谢您的帮助:)我可以问更多的问题吗?我如何使用openswf()传递变量,因为我尝试使用此代码
doc.write(“
”)但它的错误如下
丢失)在参数列表之后
我现在得到了答案,我尝试使用此代码
doc.write(“
”)感谢您的帮助:)