如何在html文件中调用js函数,没有事件触发器?我想要的代码如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="jquery.flot.js"></script>
<script src="chart.js"></script>
<title>
</title>
</head>
<body>
<div id="chart1" style="width:600px;height:300px"></div>
show_graph({{ chart_type }}, {{ data }}, {{ options }});
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但这只会导致函数调用被打印到屏幕上,而不是实际执行的函数.
例如,我得到了show_graph(bar,[[1,2000],[2,50],[3,400],[4,200],[5,5000]],['Foo']);
我该怎么办?
编辑:
我很欣赏这些反馈,但我尝试将其包装在脚本标签中并获得"参数数量无效"错误.
javascript是:
function show_graph(charttype, data, options){
var chart_options = {
series: {
charttype: {
show: true
}
}
}
var plot = $.plot($("#chart1"), [data], [chart_options]);
}
Run Code Online (Sandbox Code Playgroud)
所以我想真正的问题是"当我传递3个参数并接受3个参数时,为什么我得到"参数数量无效"错误?"
我使用内联Javascript很多,通常在我制作的WordPress主题中.//<![CDATA[ ... //]]>直到几个月前我还没有听说过将内联Javascript包装起来,而且我已经在相当的能力水平上做了几年.
我google了,我听说人们使用它,因为他们的Javascript不会验证.我使用严格的1.0 xHTML文档类型,并且在验证我的标记时从未遇到过问题.是因为我使用jquery,还是因为我通常只有几行代码来激活插件?或者w3验证器在这方面是否宽松?不使用这些CDATA标记时是否有任何功能影响的证据?
我正在使用Java Facelets和jQuery,但是表达式
$('...')
Run Code Online (Sandbox Code Playgroud)
在jQuery与EL表达式冲突中,我如何逃避jQuery的一个?
我也想逃避大量的Javascript.
ANSWERED
要将现有的JSP转换为Facelets xhtml,只需将现有的javascript包装起来即可<![CDATA[ ... ]]>.但是,输出脚本<script>由<!-- -->注释包装,与CDATA部分冲突:
<script><![CDATA[ scripts... ]]></script>
=> <script><!-- <![CDATA[ scripts... ]]> --></script>
Run Code Online (Sandbox Code Playgroud)
要解决此问题,您还应注释掉CDATA:
<script>/* <![CDATA[ */ scripts... /* ]]> */</script>
=> <script><!-- /* <![CDATA[ */ scripts... /* ]]> */--></script>
Run Code Online (Sandbox Code Playgroud)
另请参见脚本标记中何时需要CDATA部分?.
代码: var foo = /\</;
当我去jslint.com并输入时,我得到:
Problem at line 1 character 12: Unexpected '\'.
它曾经告诉我,Unexpected escaped character '<' in regular expression.但时代已经改变.
所以我只是好奇,为什么?如果你尝试var foo = /\>/;它不关心,有什么处理<?
我已经看到了许多不同的声明脚本标签的方法。他们之中有一些是:
变体1:
<script type="text/javascript">
//some javascript here
</script>
Run Code Online (Sandbox Code Playgroud)
变体2:
<script type="text/javascript">
//<![CDATA[
// some javascript here
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)
变体3:
<script language="javascript">
//some javascript here
</script>
Run Code Online (Sandbox Code Playgroud)
变体4:
<script>
//some javascript here
</script>
Run Code Online (Sandbox Code Playgroud)
也有其他变化。当我们使用HTML5 + js工作时,哪种方法更适合声明Script标签?
我有一段 javascript 工作片段:
<script type="text/javascript">
//<![CDATA[
jQuery(document).ready(function() {
jQuery("#page_template option[value='sidebar-page.php']").remove();
});
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)
//<![CDATA[和//]]>代表什么?我从未使用过它,但最近我经常遇到它。预先感谢你们增长了我的知识!;)
我正在审查海外开发商为我们制作的一些HTML.他们在他们的外部脚本加载标签中使用注释 - 据我所知这只对非常旧的javascript不知情的浏览器有用,他们曾经将脚本呈现为文本 - 这有什么现代的目的还是现在完全冗余?
<script type="text/javascript" src="path/to/file.js"><!--//--></script>
Run Code Online (Sandbox Code Playgroud)
提前致谢
//在下面的评论之后进行更新:事实证明,评论是在内容管理系统中将问题呈现为标记的问题
<script type="text/javascript" src="path/to/" />
Run Code Online (Sandbox Code Playgroud)
没有评论存在 - 所以答案是他们不再在一般的Web开发中有任何用处,但是在某些特定情况下它们可能有用.感谢Caspar Kleijne指出这一点.
在每个JQuery教程中,入口点总是如下:
$(document).ready(function() {
...
});
Run Code Online (Sandbox Code Playgroud)
但是在sdoc项目中,它对于我的新手来说有不同的切入点.这是代码片段,还有完整的文件:
<script type="text/javascript" charset="utf-8">
//<![CDATA[
function placeholder() {
...
}
$(function() {
placeholder();
...
})
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)
问题:是$(function()..)jquery脚本的入口点吗?如果它与传统方法有所不同?谢谢
我试图在每个浏览器中运行以下HTML:Opera,FF,IE,Chrome
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8">
</head>
<body>
<script>
<![CDATA[
alert('Hey!');
]]>
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
他们都没有显示警报.Chrome在控制台中记录错误:Uncaught SyntaxError:Unexpected token <.似乎在CDATA宣言中抱怨拳头.Firefox还会记录"语法错误"
w3schools指出这是使用CDATA的方式http://www.w3schools.com/xml/xml_cdata.asp.本网站的其他答案表明了这一点.我究竟做错了什么?我尝试使用命名空间和doctypes,但这并没有改变任何东西.
编辑:我添加了XHTML名称空间和doctype,我最初删除了,问题仍然存在.
我看到一些包含CDATA的Javascript代码.例如,我从http://www.w3schools.com/xml/xml_cdata.asp复制
<script>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
</script>
Run Code Online (Sandbox Code Playgroud)
请注意,我在上面的链接中做了一个描述.但是我可以得出何时决定使用CDATA标签的结论.
如果有人能帮我理解这个标签的用途,那么什么时候使用它会很棒.