我想使用类似的东西:
<body onLoad="init('A sentence with "quoted text" as parameter')">
不幸的是,这确实有效,因为参数中的引号未得到正确处理。
转义引号也不起作用
<body onLoad="init('A sentence with \"quoted text\" as parameter')">
(以上也行不通。)
我该如何处理这件事。我虽然也许我可以创建一个字符串变量并将其句子(带引号)分配给它。但我不知道怎么做! body onload是HTML,Javascript变量只在脚本范围内可见,对吗?确切地说,以下方法不起作用:
<script language="JavaScript">
var dada='A sentence with \"quoted text\" as parameter';
</script>
<body onLoad="init($dada, '</a>')">
答案 0 :(得分:9)
您必须使用HTML实体才能使其正常工作:
<body onLoad="init('A sentence with "quoted text" as parameter')">
但是,更简洁的方法是将值分配到文档头部的单独<SCRIPT>
部分。
...
<script>
body.onload = function() { init('A sentence with "quoted text" as parameter'); }
</script>
<body>
...
onload
事件的一般缺点是,只有在加载了文档及其所有资产(图像,样式表...)时才会触发它。这是onDOMLoad事件的来源:它在核心HTML结构准备就绪时触发,并且所有元素都被渲染。但是,它并不是跨浏览器统一支持的,因此所有框架都有自己的实现。
jQuery版本称为.ready()
.
答案 1 :(得分:3)
为什么不以编程方式设置它,而不是内联onLoad
方法。然后,您可以使用closures的强大功能将数据导入函数。
<script type="text/javascript">
var data = "some data";
document.body.onload = function()
{
alert(data);
}
</script>
答案 2 :(得分:2)
不是最好的方式
onload='init("A sentence with \"quoted text\" as parameter")'
答案 3 :(得分:0)
顺便说一下,我犯了一个愚蠢的错误。
<script language="JavaScript">
var dada='A sentence with \"quoted text\" as parameter'; </script>
<body onLoad="init(dada, '</a>')">
这也有效。我在onload电话中使用$ dada而不是dada。