<?php if($_POST) {exit('<span>Text</span><script> $(function() { alert(1) }); </script>'); } ?> <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script> $(function() { $('button').click(function() { $.post(location, {a:1}, function(d) { $('#as').html(d) }) }) }); </script> </head> <body> <div id="as"></div> <button>GO</button> </body> <html> я пару недописанных символов добавил, да, код работает. Спасибо, сейчас буду размышлять над ним. И вообще большое спасибо за оперативный ответ, я не ожидал такого оперативного отклика. А код должен сгенерироваться именно на динамической странице, поэтому не имею возможности заранее написать его в статической. |
Цитата:
Если подумать, то многое сводится к универсальности, а значит можно иметь "скелет готовый". Хотя все может быть, может и нужна необходимость гонять скрипты между сервером и клиентом, трудно сказать не видя и не зная всего. |
Я не считаю себя особо опытным в этом деле, поэтому думаю, что Вы правы. Возможно через какое-то время я к этому и приду, а пока стараюсь писать код на уровне своего понимания =)
|
Цитата:
|
да, открывающую фигурную скобку {
и закрывающий ?> я в notepad++ работаю он код подсвечивает, а без этих символов каша получалась, да и вообще если есть закрывающая скобка - должна быть и открывающая, а если где-то мы сказали, что с этой строчки пойдет php код, то должны сказать, где этот код закончится. |
Я исправил, просто вы взяли код до исправления. Если условие или тело цикла это одна операция, то фигурные скобки не нужны, это уже роскошь. )
|
Позвольте еще вопрос
$.ajax({ url: 'example.html', type: 'GET', success: function(data) { var dom = $(data); dom.filter('script').each(function(){ $.globalEval(this.text || this.textContent || this.innerHTML || ''); }); $('#mydiv').html(dom.find('#something').html()); } }); Вот нашел такой кусок кода, внешне фактически то, что использую и я. Не могу понять смысла строчки $('#mydiv').html(dom.find('#something').html()); то есть мы загружаем в блок с id="myDiv" методом html кусок обработанного текста в переменной dom. А вот что дальше? зачем мы ищем в dom #something ? И правильно ли я понимаю, что в строках dom.filter('script').each(function(){ $.globalEval(this.text || this.textContent || this.innerHTML || ''); }); происходит преобразование текста в код, вернее куски текста, представляющие из себя код начинают восприниматься кодом, а не текстом? |
Цитата:
var dom = $(data); это уже объект (jq), а dom.find('#something').html() находит в этом объекте объект с id=something получая его html, ну и вставляет в mydiv. Цитата:
|
CHER84,
$.ajax({ url: 'example.html', type: 'GET', success: function(data) { //пришла строка var dom = $(data); //превратили строку в html dom.filter('script').each(function(){ //нашли содержимое всех сриптов в этом html $.globalEval(this.text || this.textContent || this.innerHTML || '');//запустили все скрипты, которые нашли при помощи плагина }); $('#mydiv').html(dom.find('#something').html()); // весь html нам не нужен, а нужен только элемент something, его отыскали и вывели на экран } }); |
Спасибо за пояснения, кажется я нащупал решение своей проблемы.
Выложу здесь код, там минимум изменений получится с первоначальным вариантом, так что должно быть полезным. Суть сводится к слкдующему: document.getElementById(result_id).innerHTML = response; myFunction(); запускаем именованную функцию, а уже внутрь этой функции засовываем то, что нам нужно, то есть в моем подгружаемом файлике образовалась еще такая конструкция: function myFunction(){ $(document).ready(function() { alert ("hi"); /* Зaкрытие мoдaльнoгo oкнa, тут делaем тo же сaмoе нo в oбрaтнoм пoрядке */ $('#modal_close, #overlay').click( function(){ // лoвим клик пo крестику или пoдлoжке $('#modal_form') .animate({opacity: 0, top: '45%'}, 200, // плaвнo меняем прoзрaчнoсть нa 0 и oднoвременнo двигaем oкнo вверх function(){ // пoсле aнимaции $(this).css('display', 'none'); // делaем ему display: none; $('#overlay').fadeOut(400); // скрывaем пoдлoжку } ); }); }); } и алерт и код закрывания окошка по нажатию на крестик заработали, а вот перезагрузка методом load пока сопротивляется, буду дожимать =) По сути принципиальный вопрос: как заставить код JS быть именно кодом, а не текстом, разрешился, так что надеюсь поможет кому-то еще =) решение нашел здесь Извиняюсь, если запрещены ссылки на сторонние ресурсы, там англоверсия, не каждый будет читать, собственно и я не читал - пробежался по коду просто. |
Часовой пояс GMT +3, время: 13:04. |