Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Скрипт "накрывающий" весь код (https://forum.antichat.xyz/showthread.php?t=109155)

clin 04.03.2009 12:06

Скрипт "накрывающий" весь код
 
Есть страничка. Обычный код. Можно ли добавить туда какой-нить скрипт, чтобы не трогая родной код страницы отображалась, например, картинка какая-нить? И как это сделать? Одну строчку добавил и всё... тип такого.

OMG!! 04.03.2009 12:11

закомментировать в теги коментов весь код и добавить свой.

Gifts 04.03.2009 12:15

clin

Добавить в самое начало скрипта:

PHP код:

<?PHP die('<img src="путь до картинки" />'); ?>


clin 04.03.2009 12:27

Gifts, пхп не поддерживает(

OMG!!, хз, не получилось. ща попробую на другой страничке, по-меньше

BlackSilver 04.03.2009 13:29

Так тебе ЯваСкрипт нужен?
пробуй document.write и выводить div'ы со слоями.
Тут мануал по слоям.

d_x 04.03.2009 15:16

Внутри тега <body>:
Код:

<script language='JavaScript'>
document.body.onload=new function() {document.body.innerHTML="<img src='картинка.gif'>";};
</script>


ntldr 04.03.2009 23:56

Цитата:

Сообщение от d_x
Внутри тега <body>:
Код:

<script language='JavaScript'>
document.body.onload=new function() {document.body.innerHTML="<img src='картинка.gif'>";};
</script>


если я не ошибаюсь, он у тебя всю страницу заменит на картинку. тогда уж так:
document.body.innerHTML += "<img src='картинка.gif'>";

d_x 05.03.2009 00:07

Ну я так понял, что нужно именно накрыть весь код, т.е. всё содержимое.)

astrologer 05.03.2009 00:18

Цитата:

Код:

<script language='JavaScript'>
document.body.onload=new function() {document.body.innerHTML="<img src='картинка.gif'>";};
</script>


Интересно, зачем тут new

d_x 05.03.2009 00:20

Потому что фаерфокс без new не понимает, хотя в ИЕ работает.

astrologer 05.03.2009 00:33

Цитата:

Сообщение от d_x
Потому что фаерфокс без new не понимает, хотя в ИЕ работает.

Смысл ключевого слова new, грубо говоря, - проверить, что там находится справа (а в данном случае - функция), является ли это что-то конструктором (является) и запустить на исполнение.

Как результат, происходит следующее:
1. JS-Движок доходит до выражения new function() { ... }
2. Функция запускается, содержимое страницы перезаписывается.
3. Функция возвращает объект, который записывается в document.body.onload. Но потом он не используется, т.к. не является вызываемым (callable)

А в лисе не работало не из-за new, а из-за document.body.onload. Было бы там window.onload, onload, или как-нибудь более привычно - addEventListener - работало бы :)

d_x 05.03.2009 00:39

Хорошее пояснение, всё логично. Лиса правда не выдавала ошибок при document.body.onload, поэтому сложно было определить, в чём дело, а new спасло:)
addEventListener действительно хороший вариант, не подумал про него.

AkyHa_MaTaTa 05.03.2009 02:00

применения конструктора function это конечно хорошо и удобно, но в данном примере можно было обойтись и более лаконично:
<script language='JavaScript'>
document.body.onload= document.body.innerHTML="<img src='lost_dharma.gif'/>";
</script>

astrologer 05.03.2009 18:27

Цитата:

Сообщение от AkyHa_MaTaTa
применения конструктора function это конечно хорошо и удобно, но в данном примере можно было обойтись и более лаконично:
<script language='JavaScript'>
document.body.onload= document.body.innerHTML="<img src='lost_dharma.gif'/>";
</script>

Только вот в этом ещё меньше логики, не находишь?

clin 06.03.2009 11:38

Спасибо, но не один не работет(
Картинка получается прост сверху, а внизу, хоть и криво идёт сайт как и был...

Sn@k3 06.03.2009 11:55

в самое начало - stop(); XD всё гениальное - просто)

а тебе яваскрипт нужен?) хаха а что мешает открытьт сорцы по ходу удалить скрипт и применить?) т.е. защита никакая) так что в пхп мути.

clin 06.03.2009 12:08

желательно яваскрипт, ибо пхп не поддерживает хостер..

предоставленные вами скрипты вставлял на ряду с остальными в сайте... и в самом верху :(

clin 06.03.2009 12:11

stop();
перед <html.....
тож не помогло

AkyHa_MaTaTa 06.03.2009 13:50

Цитата:

Сообщение от astrologer
Только вот в этом ещё меньше логики, не находишь?

Если не сложно, то обоснуй чем применения new function более логично, чем просто код состоящий из 1 операции? Я не вижу преимуществ применения конструктора function в данном случаи. Я понимаю если нам нужно было выполнить более одной операции, то тогда естествено заключить код в конструктор function было бы самым логичным решением.
Если пошло на самое лаконичное решения то можно зделать как и написал ntldr
document.body.innerHTML = "<img src='картинка.gif'>"; - и добавить этот код в конце тега <body>

Buffalon 06.03.2009 14:01

ЯВА скриптом ссылайся на какую нибудь страницу :) , только пробла если JS отключён %)

astrologer 07.03.2009 01:30

Цитата:

Сообщение от AkyHa_MaTaTa
Если не сложно, то обоснуй чем применения new function более логично, чем просто код состоящий из 1 операции?

Если ты обратишь внимание на мои предыдущие сообщения, то заметишь, что вовсе не считаю "применение new function" более логичным.

Первый вариант, от d_x содержал в себе правильную идею - "после загрузки страницы вызвать функцию". Хотя с ключевым словом new он мало отличается от такого:
Код:

<script language='JavaScript'>
(function() {document.body.innerHTML="<img src='картинка.gif'>";})();
</script>

или такого:
Код:

var test = new function() {document.body.innerHTML="<img src='картинка.gif'>";};
Из-за этой же ошибки возникло ограничение на место расположения кода (в <body>)

У второго примера:
Код:

document.body.onload = document.body.innerHTML = "<img src='lost_dharma.gif'/>";
то же самое ограничение. Кроме того, не понятно, что же имеется ввиду. Варианты такие:
  1. js должен догадаться, что правую часть (document.body.innerHTML = "<img src='lost_dharma.gif'/>") нужно налету преобразовать в лямбду
  2. или же в document.body.onload намеренно записывается строка "<img src='lost_dharma.gif'/>". Зачем?

Цитата:

Если пошло на самое лаконичное решения то можно зделать как и написал ntldr
document.body.innerHTML = "<img src='картинка.gif'>"; - и добавить этот код в конце тега <body>
Возможно, хотя ntldr написал другой вариант.

Цитата:

Сообщение от clin
скрипт, чтобы не трогая родной код страницы отображалась, например, картинка какая-нить

Скрипт не сможет отобразить что-либо, не внося никаких изменений

P.S.
Цитата:

применения конструктора function это конечно хорошо и удобно
Хммм =/

AkyHa_MaTaTa 07.03.2009 15:31

Цитата:

Сообщение от astrologer
У второго примера:
Код:

document.body.onload = document.body.innerHTML = "<img src='lost_dharma.gif'/>";
то же самое ограничение.

Ну если ты прочитаешь мой топик то увидешь(хотя наверно не увидешь, т.к. ты по всей видимости вообше не понял о чем я писал) что я имелл в виду- МОЖНО ОБОЙТИСЬ И БЕЗ new function что бы этот код работал и в фф и в других браузерах, без прибегания к конструктору function вот что я хотел написать, и естествено если ты имешь ввиду что тега боду не будет то естесвтено будет ошибка, т.к. у undefined нету property innerHTML.
Цитата:

Из-за этой же ошибки возникло ограничение на место расположения кода (в <body>)
Как ты думаешь зачем innerHTML в этом конткретном примере пишеться?
В отличии от тебя я не стану докапываться до каждого твоего слова и перекручивать его на свой лад и излогать давно известные истины,которые мне давно известны и которые ни какого отношения не имеют к моему вопросу, да ХММ/.

astrologer 07.03.2009 16:22

Цитата:

Сообщение от AkyHa_MaTaTa
Ну если ты прочитаешь мой топик то увидешь(хотя наверно не увидешь, т.к. ты по всей видимости вообше не понял о чем я писал)

Может и не понял, интенсиональный контекст и всё такое, но код говорит сам за себя
Цитата:

МОЖНО ОБОЙТИСЬ И БЕЗ new function
Понятное дело
Цитата:

излогать давно известные истины,которые мне давно известны
Ну извини


Время: 00:36