运行<script> </script>和function()javascript之间有什么区别?

时间:2010-02-25 01:48:53

标签: javascript

``喜

使用whizzywig wysiwyg编辑器发现有 在此处输入代码                makeWhizzyWig(“编辑”,“全部”);      没关系

但正在运行

<script>
function doit(){
      makeWhizzyWig("edited", "all");
}
</script>

doit()

它打破....

关于这种差异的任何建议? 我也会感谢对此的某种解释

提前谢谢 makerjoe

-------------------------------------------------------------------------------------------

as per your request 

this works ok

<head>
<script type="text/javascript" src="/makerjoe/js/whizzywig.js"></script>
</head>

<body>
<form name="Whizzy" action="whizzed.php" method="post" onsubmit="syncTextarea();">
<textarea name="edited" id="edited" rows="15" cols="70" style="width:99%; height:500px;"> 
</textarea>
<input type="submit" name="submit" value="Submit" title=" Displays your page, which you can Save from the File menu. ">
</form>

<script>
      makeWhizzyWig("edited", "all");
</script>

</body>



------------------------------------------------------------------------------------------

the following does not work!!!

<head>
<script type="text/javascript" src="/makerjoe/js/whizzywig.js"></script>
</head>

<body>
<form name="Whizzy" action="whizzed.php" method="post" onsubmit="syncTextarea();">
<textarea name="edited" id="edited" rows="15" cols="70" style="width:99%; height:500px;"> 
</textarea>
<input type="submit" name="submit" value="Submit" title=" Displays your page, which you can Save from the File menu. ">

</form>
<script>
function doit(){
      makeWhizzyWig("edited", "all");
}
</script>

<a href=javascript:doit()> doit </a>

</body>

4 个答案:

答案 0 :(得分:1)

由于您对问题进行了格式化,我们无法看到问题,但在编辑后为您添加代码标记后,我注意到您正在定义{{1> 的函数<{1> }} 标签。以下应该有效:

<script>

答案 1 :(得分:1)

函数只是一种将代码语句分组在一起的方式,使它们更容易调用和重用。

在你的例子中,doit()只包含一个语句而且不包含任何参数,因此它的值是有问题的,你也可以直接调用makeWhizzyWig。但是,在大多数情况下,函数是构造和组织代码的重要部分。

答案 2 :(得分:1)

你展示它的代码应该有用。或者至少,当你点击doit链接时,应该调用doit()方法。如果在doit方法的开头添加警报调用,则应在单击链接时看到弹出窗口。你呢?

function doit(){
    alert('should be reached');
    makeWhizzyWig("edited", "all");
}

如果您没有看到警报窗口,您使用的浏览器是什么?

修改

看到它有效后,我创建了一个js文件:

test.js
function makeTest(param1, param2)
{
    alert("first: " + param1 + " second: " + param2);
}

并修改了我的html文件:

<head> 
<script type="text/javascript" src="test.js"></script> 
</head> 

<body> 


<script> 
function doit()
{
      makeTest("edited", "all");
}
</script> 

<a href=javascript:doit()> doit </a> 

</body> 

这表明问题不在于您调用doit函数的方式,而是在从全局上下文调用makeWhizzyWig()时出现问题。 不能说更多,因为我没有makeWhizzyWig的来源,但你可以尝试改变

<a href=javascript:doit()> doit </a>

<a href="#" onClick="doit()"> doit </a>

看看它是否有效

答案 3 :(得分:1)

makeWhizzyWig(“已编辑”,“全部”); 使用document.write创建一个新的Whizzywig。必须在页面加载之前调用它。您的问题是,在页面加载完成之前,您不会调用doit()函数,因此makeWhizzyWig中的document.write将无法正常工作,因为文档已经完成。

有关如何使用Whizzywig动态创建编辑器的示例,请参阅http://unverse.net/WYSIWYG并点击“动态加载”。

或尝试Whizzywig 2011,它通过不使用document.write

解决了这个问题