Разрешить одноуровневую папку в функции JavaScript
Я пытаюсь передать в функцию JavaScript два пути для XML и XSLT. Казалось бы, что в примере HTML ниже, что использование "../xsl/filename
"не работает для меня в функции xslt(). Если я укажу путь как"./filename
"хотя это работает.
Кто-нибудь знает, как я могу обойти это или найти способ, которым я могу указать родную папку без ссылки на абсолютный путь? Я бы предпочел не менять пути к моим файлам, поскольку моя среда разработки настроена так, что xslt, примеры данных и исходный код структурированы особым образом.
Заранее спасибо Jamen
<html>
<head>
<title></title>
<script type="text/javascript" src="../lib/jsunit/app/jsUnitCore.js"></script>
<script type="text/javascript" src="../lib/jquery-1.2.3.js"></script>
<script type="text/javascript" src="../lib/jquery.xslt.js"></script>
</head>
<body>
<div id="bla"></div>
<script type="text/javascript">
$('#bla').xslt("../sampledata/response1.xml", "../xslt/resultFormatter.xsl");
//function testjQuery() {
// $('#bla').xslt("../sampledata/response1.xml", "../xslt/resultFormatter.xsl");
//}
</script>
</body>
</html>
1 ответ
Живой пример дал бы мне самый быстрый способ углубиться в это, но вместо этого..
Боюсь, тебе придется немного отладить.
Вы можете ссылаться на относительные пути как минимум на один уровень глубиной, потому что заголовки, извлекающие исходные файлы JS, также делают это, что исключает проблемы с веб-сервером.
Обработка и извлечение ресурсов, кажется, происходит на стороне клиента, поэтому откройте консоль Firebug или что-то еще, что даст вам представление о том, что происходит в вашей среде JS.
Если вы нарисуете там пробел, покопайтесь в источнике.
Посмотрите на исходный код,
http://johannburkard.de/software/xsltjs/apidoc/overview-summary-jquery.xslt.js.html
Есть два разных пути,
if (document.recalc) { // IE 5+
// EDIT : Path 1
} else if ( /* EDIT : conditions */) { // Mozilla 0.9.4+, Opera 9+
// EDIT : Path 2
} // EDIT : No final else, so a silent failure
Второй параметр, который дает вам горе, сопоставляется с регулярным выражением,
var str = /^\s*</;
в обоих направлениях. Какой бы путь вы ни пошли, установите точку останова и протестируйте эти случаи самостоятельно (используя оба значения параметра xslt, которые вы использовали). Исключите возможности и продолжайте идти по цепочке обработки, пока не найдете свою точку отказа.
Я предполагаю, что где-то внизу есть ошибка с обработкой совпадений / регулярных выражений, когда первоначальный автор не ожидал относительных путей.