Извикване на функция на javascript в прототип на модален прозорец

Извиквам прототип на модален прозорец при събитие onclick. Страницата, която се извиква вътре в модалния прозорец, съдържа функция на javascript. Тази функция не се изпълнява в модалния прозорец. Въпреки това работи добре, когато страницата се изпълнява индивидуално, а не в модалния прозорец.

Моето запитване е дали функцията javascript/Ajax работи в модалния прозорец на прототипа?


person user475685    schedule 22.02.2011    source източник


Отговори (1)


не сте сигурни как зареждате съдържанието на вашия прозорец (или какъв вид модален прозорец използвате), но Ajax.Updater има опция, наречена evalScripts, която трябва да бъде зададена на true, за да оцени скриптовете от заявката:


new Ajax.Updater(elementId, url, {evalScripts: true});
person matei    schedule 22.02.2011
comment
при щракване извиквам функция, openmodal_window(){ open DHTMLWindow( ,'checkemail.php' ,420,320,email);}, страницата checkemail.php съдържа javascript функция за валидиране на имейла. Тази функция не се изпълнява в модалния прозорец (prototype.js). - person user475685; 22.02.2011
comment

Не знам дали сте намерили подходящо решение/заобиколно решение, но разглеждах този проблем в msxml и някой предложи използването на MXXMLWriter. Можете да насочите изхода през SAX анализатор (SAXXMLReader) и да закачите MXXMLWriter към него, както е описано тук. Донякъде е смешно да се налага да анализирате отново xml, за да го форматирате, когато знаете, че DOMDocument има цялата информация, необходима за отстъп, но ето я.

Всъщност все още нямах време да проуча, но очевидно можете да използвате MXXMLWriter, несвързан към SAX четец, за да изградите XML - вместо да използвате DOMDocment - и да го накарате да прави отстъп, докато вървите вместо това. Вижте инструкциите тук.

- person matei; 22.02.2011
comment
използвам библиотека prototype.js, която използва Dialog.info за създаване на модален прозорец. - person user475685; 22.02.2011
comment
Виждал съм да използвате прототип, но не съм сигурен за скрипта на модалния прозорец (прототипът не включва клас модален прозорец, така че трябва да използвате библиотека на трета страна, базирана на прототип). Можете ли да публикувате връзка към библиотеката? - person matei; 22.02.2011
comment
Изглежда, че тази библиотека използва Ajax.Request, който не поддържа evalScript. Бих опитал да заредя съдържанието с помощта на Ajax.Updater в скрит div и след това да отворя този div в модалния прозорец. - person matei; 22.02.2011
comment
използвам Ajax.Updater и използвам скрит div, но все още не работи. - person user475685; 22.02.2011
comment
не забравяйте да поставите evalScripts: true в опциите на Ajax.Updater - person matei; 22.02.2011