поставьте \'> А вот если название файла содержит кавычку, например, A'1.txt , > то возникает ошибка "Expected )". <a href"../main.htm" onclick="javascript:load('temp/A'1.txt', 0);">A1</a>
В таких случаях записывайте имя файла так: A\'1.txt Такой способ всегда дает возможность передать символы апострофа и кавычки внутри строкового литерала, независимо от того, какой из них используется в качестве обрамления. Символ кавычки записывается в стрингах посредством выражения \" а апостроф посредством \'
> конкретно с кавычкой разобралась, решается заменой ' на "
А вот так поступать неправильно. HTML выражение " передает знак апострофа только визуально, отображая его в тексте. Однако рабочее имя файла должно содержать настоящий апостроф. Это означает, что там, где требуется передать имя файла, в стринге следует записать \' А вот в ТЕКСТЕ, предназначенном для лицезрения вместо апострофа желательно писать " В вашем примере ПЕРВОЕ упоминание A'1 должно быть записано через A\'1 , поскольку здесь оно играет роль имени файла, в ВТОРОЕ упоминание A'1 лучше записать через A"1 , поскольку там оно используется для глядения. Правильный результат будет выглядеть так: <a href="../main.htm" onclick="javascript:load('temp/A\'1.txt', 0);">A"1</a>
Обратите внимание на разницу записи A'1 в аргументе функции и в теле тега ссылки!
> М.б. есть общий способ проверки параметра на наличие спецсимволов и соответствующей замены их на коды?
Ошибка совершена вами в самом тексте Javascript-программы, поэтому чтобы избежать подобного просто обращайте внимание на апострофы и кавычки. Сообщения об ошибке достаточно для того, чтобы понять, что в выражении что-то неладно. Если же апострофы и кавычки содержатся не тексте программы, а хранятся внутри перемененной, то тут никаких проверок не надо - подстановка переменной в качестве параметра всегда проходит без проблем. |