Вход

Просмотр полной версии : script во внешнем JS


cmail
28.06.2013, 06:37
Не могу понять. скрипт
document.write('<script>var numberclick=0; function clickmoreone(){ numberclick++; if(numberclick>0) document.getElementById("ball").style.display="none"; }<\/script>')
во внешнем js работает если стоит так:

document.write('<script>var numberclick=0; function clickmoreone(){ numberclick++; if(numberclick>0) document.getElementById("ball").style.display="none"; }<\/script>');



function PopShow3() {
CookieTest=navigator.cookieEnabled;
if(CookieTest)
{
ClickUndercookie = GetCookie('clickunder');
if (ClickUndercookie == null)
{
var domain = window.location.href;
var ExpDate = new Date ();
ExpDate.setTime(ExpDate.getTime() + (24 * 60 * 60 * 1000));
SetCookie('clickunder', '1', ExpDate, "/");
<!--
// —>
window.focus();
}
}
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2]: null;
var path = (argc > 3) ? argv[3]: null;
var domain = (argc > 4) ? argv[4]: null;
var secure = (argc > 5) ? argv[5]: false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "": ("; expires=" + expires.toGMTString())) +
((path == null) ? "": ("; path=" + path)) +
((domain == null) ? "": ("; domain=" + domain)) +
((secure == true) ? "; secure": "");
}
document.onLoad="PopShow3()"


а если размещаю что бы срабатывал вместе с куками(то не работает):

function PopShow3() {
CookieTest=navigator.cookieEnabled;
if(CookieTest)
{
ClickUndercookie = GetCookie('clickunder');
if (ClickUndercookie == null)
{
var domain = window.location.href;
var ExpDate = new Date ();
ExpDate.setTime(ExpDate.getTime() + (24 * 60 * 60 * 1000));
SetCookie('clickunder', '1', ExpDate, "/");
<!--
document.write('<script>var numberclick=0; function clickmoreone(){ numberclick++; if(numberclick>0) document.getElementById("ball").style.display="none"; }<\/script>');
// —>
window.focus();
}
}
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2]: null;
var path = (argc > 3) ? argv[3]: null;
var domain = (argc > 4) ? argv[4]: null;
var secure = (argc > 5) ? argv[5]: false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "": ("; expires=" + expires.toGMTString())) +
((path == null) ? "": ("; path=" + path)) +
((domain == null) ? "": ("; domain=" + domain)) +
((secure == true) ? "; secure": "");
}
document.onLoad="PopShow3()"


В чем ошибка???

Deff
28.06.2013, 06:40
cmail,
1. В неподгружаемом файлом скрипте на странице не должно быть тегов закрытия </script>, т.е
скрипт выложенный на странице можно записать так
document.write('<script>var numberclick=0; function clickmoreone(){ numberclick++; if(numberclick>0) document.getElementById("ball").style.display="none"; }'<'+'/'+'script>')

2. document.write не может находиться в функции с произвольным по времени вызовом
поскольку document.write без очистки страницы может нормально действовать до события window.onload
Иcпользуйте в функциях appendChild

cmail
28.06.2013, 06:46
так не работает((
но работает:
document.write('<script>var numberclick=0; function clickmoreone(){ numberclick++; if(numberclick>0) document.getElementById("ball").style.display="none"; }<\/script>')
если он сверху скрипта

danik.js
28.06.2013, 06:48
<!--

Это че такое?
Deff, ну он ведь уже заэкранировал слэш - этого достаточно было.

danik.js
28.06.2013, 06:49
Стоп. А какого хрена ты это через document.write выводишь?

cmail
28.06.2013, 06:59
с cod.php на сайт выводиться слой который я хочу при наведении закрывать спомощью куков на 24 часа

Вот моя тема: http://javascript.ru/forum/misc/39123-vneshnijj-js-ne-rabotaet.html

cmail
28.06.2013, 07:08
cod.php
document.write('<div style="position: absolute; width: 100px; height: 44px; z-index: 1; left: 20px; top: 215px" id="ball"><iframe class="transparent" name="I2" scrolling="no" width="498" height="77" align="left"
src="http://cod.php?id=<?php print "$id"; ?>" onmouseout="clickmoreone();"></iframe></div>');


document.write('<SCRIPT LANGUAGE="JavaScript" src="http://мой сайт/clickunder.js"></SCRIPT>');


на сайте:
<script language="JavaScript" src="http://cod.php?id=1"></script>

Deff
28.06.2013, 07:09
cmail,
:) А нафега его через document.write
почему не вставить вместо него просто функцию ?
var numberclick=0; function clickmoreone(){ numberclick++; if(numberclick>0) document.getElementById("ball").style.display="none"; }
В чём соль записи через отдельный скрипт ?

cmail
28.06.2013, 07:12
если добавить в cod.php то с <?php print "$id"; ?> не работает

Deff
28.06.2013, 07:15
с <?php print "$id"; ?> не работает
<script>
var id='ball'; //Это прописываешь PHP
</script>

А эт сама функция:
var numberclick=0; function clickmoreone(id){ numberclick++; if(numberclick>0) document.getElementById(id).style.display="none"; }

ruslan_mart
28.06.2013, 07:16
Можно ещё так попробовать :D
document.write('<script>document.write(\'<script>document.write("<script>document.write(\"<script>var numberclick=0; function clickmoreone(){ numberclick++; if(numberclick>0) document.getElementById("ball").style.display="none"; }<\/script>\")<\/script>")<\/script>\')<\/script>')

Ну, а если серьёзно, то зачем вообще так делать?

danik.js
28.06.2013, 07:35
Я думаю так делают все фанаты
http://www.russianhut.ru/upload/images/Babushka_doll_4.jpg

cmail
28.06.2013, 07:39
Я ПОНЯЛ!!!:D :-E Это скрипт кликандера не хочет работать:-? Хотя он сам по себе был раньше рабочим:blink: