только «включая прототип» было оповещено, но «запуск моего кода» никогда не получал оповещения.Почему?
Я не знаю, не увидев код - вы получаете что-нибудь в консоли ошибок JavaScript? - но одна возможность состоит в том, что что-то в коде полагается на неукрашенную глобальную область.Например, оператор function
нельзя использовать внутри if
в стандартном ECMAScript.Что на самом деле происходит, если вы пытаетесь это сделать, зависит от браузера, но обычно оно может переопределить ранее объявленную версию функции, даже если предложение if
не оценивает true
.
Эта проблема может быть решена с помощьюпомещая Prototype в свой собственный блок <script>
, который вставляется на страницу с помощью методов DOM или document.write до выполнения основного сценария.Однако:
Я включил его в фрагмент кода javascript, который я позволяю людям копировать и вставлять на свои сайты.
Да, я бы на самом деле этого не делал,Использование более чем одной широкомасштабной, навязчивой среды, такой как Prototype или jQuery, на одной странице - это путь к конфликту и потенциально трудным для отладки проблемам.(То же самое с двумя копиями / версиями одного и того же фреймворка.)
Когда вы вставляете сниппет, вы - гость в доме другого веб-мастера, и вам необходимо иметь как можно меньшую площадь.ИМО это означает, что вы не должны использовать какие-либо рамки.