По сути, вы можете использовать функцию window.onload для запуска некоторого JavaScript, чтобы динамически добавлять html в ваше тело и показывать «выпадающий список».
Но поскольку доступ к html2 можно получить другими способами (например, с помощью закладки или копирования / вставки в браузер), а не только через гиперссылку внутри html1, вы также можете добавить некоторую строку запроса или фрагмент в html2, когда он загружается из html1. (добавьте его в href тега a
). Внутри функции загрузки вы можете проверить, существует ли то же самое, и решить, показывать или нет раскрывающийся список.
Я не буду давать код, так как функциональность в этом вопросе неопределенно определена. Но это должно помочь вам решить это самостоятельно.
Я соглашаюсь, что JSLint является лучшим местом для запуска. Обратите внимание, что Линт JavaScript отличен от JSLint. Я также предложил бы проверить JSure, который в моем ограниченном тестировании добился большего успеха, чем любой из них, хотя с некоторыми грубыми краями в реализации — версия Intel Mac, разрушенная на запуске для меня, хотя версия PowerPC хорошо работала даже на Intel и версии Linux, хорошо работала также. (Разработчик, Berke Durak, сказал, что возвратится ко мне, когда это было зафиксировано, но я не получил известие от него.)
Не ожидайте столько от статического анализа JavaScript, сколько Вы добираетесь от хорошего средства проверки C. Как Durak сказал мне, “любой нетривиальный анализ является очень трудным из-за динамического характера JavaScript”.
(Другой, еще более неясная ошибка только для Mac, на этот раз с виджетом JSLINT Konfabulator: Перетаскивание значка документа BBEdit на виджет перемещает документ мусору. Разработчик, Douglas Crockford, не попробовал виджет на Mac.)
10 августа 2009: Сегодня на Симпозиуме Статического анализа, Simon Holm Jensen сделал доклад на TAJS: Введите Анализатор для JavaScript, записанного с Anders Møller и Peter Thiemann. Бумага не упоминает вышеупомянутые инструменты, но Jensen сказал мне, что посмотрел на некоторых из них и не был впечатлен. Код для TAJS должен быть доступным когда-то этим летом.
JS-компилятор Google "Closure" выдает настраиваемые предупреждения и ошибки во время компиляции. Он определенно находит переменные и методы с ошибками, а также ошибки арности. Если вы хотите написать JsDoc в стиле Closure, он также может многое сделать с информацией о типе.
Инструмент YUI «Компрессор» тоже может выдавать предупреждения, но еще не пробовал.
Мне не очень повезло с Aptana IDE, построенной на Eclipse, но другим она нравится. См. Обсуждение JS IDE при переполнении стека.
IntelliJ IDE, которая не является бесплатной в прошлый раз, имеет чертовски отличную поддержку JS. Он будет обнаруживать и выделять ошибочно написанные переменные и методы по мере ввода и т. Д. У него тоже есть автозаполнение.
Наш SD ECMAScript CloneDR - это инструмент для поиска точных и близких копий дублированного кода в больших базах исходного кода JavaScript.
Он использует синтаксис языка для определения, поэтому он найдет клоны, несмотря на изменения формата, вставленные/удаленные комментарии, переименованные переменные и даже некоторые вставленные/удаленные утверждения.
На сайте есть пример работы CloneDR на библиотеке Closure от Google.
Полное раскрытие, я за этим: http://www.toptensoftware.com/minime , который выполняет минификацию, обфускацию и разумный набор проверок стиля линта.