2017-01-25 2 views
1

Может ли кто-нибудь объяснить, почему работает тестовая функция Javascript, даже несмотря на то, что функция XQuery объявлена ​​до включения скрипта в HTML?Почему функция Javascript работает в XQuery, хотя она объявлена ​​до включения файла

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> 

ответ

4

Весь код XQuery в index.xqy выполняется на стороне сервера, так local:test() называется и оценены, прежде чем он получает браузера. Первое, что видит браузер, это объявление Doctype, и оно оценивает страницу с результатом уже обработанного local:test().

+0

Статическая ошибка? Это просто конструктор узла, а не строка – BeniBela

+0

@BeniBela Да, я неправильно понял это. Я удалил эту записку из ответа. Благодарю. – wst

Смежные вопросы