有人可以解释为什么即使在将脚本包含在HTML中之前声明了XQuery函数,Javascript测试函数也能正常工作吗?
test.js
function test(){
alert('from test');
}
index.xqy
declare function local:test(){
for (: do something :)
return (
<script>
test("Testing...")
</script>
)
};
xdmp:set-response-content-type("text/html; charset=utf-8"),
'<!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">
<head>
<meta charset="utf-8" />
</head>
<body>
<script type="text/javascript" src="test.js"></script>
{
local:test()
}
</body>
</html>
答案 0 :(得分:4)
index.xqy
中的所有XQuery代码都是在服务器端执行的,因此local:test()
在到达浏览器之前会被调用和评估。浏览器看到的第一件事是Doctype声明,它会评估已经呈现local:test()
结果的页面。