Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   script во внешнем JS (https://javascript.ru/forum/misc/39399-script-vo-vneshnem-js.html)

cmail 28.06.2013 06:37

script во внешнем JS
 
Не могу понять. скрипт
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="non e"; }<\/script>')
если он сверху скрипта

danik.js 28.06.2013 06:48

Цитата:

Сообщение от cmail
<!--

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

danik.js 28.06.2013 06:49

Стоп. А какого хрена ты это через document.write выводишь?

cmail 28.06.2013 06:59

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

Вот моя тема: http://javascript.ru/forum/misc/3912...-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

Цитата:

Сообщение от cmail
с <?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"; }


Часовой пояс GMT +3, время: 10:24.