PDA

Просмотр полной версии : Скрипт "накрывающий" весь код


clin
04.03.2009, 12:06
Есть страничка. Обычный код. Можно ли добавить туда какой-нить скрипт, чтобы не трогая родной код страницы отображалась, например, картинка какая-нить? И как это сделать? Одну строчку добавил и всё... тип такого.

OMG!!
04.03.2009, 12:11
закомментировать в теги коментов весь код и добавить свой.

Gifts
04.03.2009, 12:15
clin

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

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

clin
04.03.2009, 12:27
Gifts, пхп не поддерживает(

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

BlackSilver
04.03.2009, 13:29
Так тебе ЯваСкрипт нужен?
пробуй document.write и выводить div'ы со слоями.
Тут (http://ru.html.net/tutorials/css/lesson15.asp) мануал по слоям.

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
Внутри тега <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
Потому что фаерфокс без 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
применения конструктора 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
Только вот в этом ещё меньше логики, не находишь?
Если не сложно, то обоснуй чем применения 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
Если не сложно, то обоснуй чем применения 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'/>"; то же самое ограничение. Кроме того, не понятно, что же имеется ввиду. Варианты такие:

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


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

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

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

AkyHa_MaTaTa
07.03.2009, 15:31
У второго примера: 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
Ну если ты прочитаешь мой топик то увидешь(хотя наверно не увидешь, т.к. ты по всей видимости вообше не понял о чем я писал) Может и не понял, интенсиональный контекст и всё такое, но код говорит сам за себяМОЖНО ОБОЙТИСЬ И БЕЗ new function Понятное делоизлогать давно известные истины,которые мне давно известны Ну извини