javascript: проблем с innerhtml от функция.

  • Автор Автор proba
  • Начална дата Начална дата

proba

Registered
Ще се опитам да обясня проблема по възможно най-лесния начин.
Имам една лента която стой най-долу в сайта (като чата на facebook) и към нея с javascript излиза едно поле нагоре (както като пишете с някой в чата на facebook).
Когато си сложа 2 скрипта + jquery , css и html кода в един файл си работи.
Но искам да вкарам всичко в един js файл който да извеждам в началото.
Пробвах така:

index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="share.js"></script>
</head>
<body onLoad="javascript: share();">
<div id="share"></div>
</body>
</html>

share.js
function share()
{
document.getElementById('share').innerHTML = '<link rel="stylesheet" type="text/css" href="box.css"/><script type="text/javascript" src="js/jquery-1.3.2.js"></script><script type="text/javascript" src="js/function.js"></script><div id="footpanel"><ul id="mainpanel"><li><a href="index.php" class="home">Начало</a></li><li><a href="#" class="public">Facebook профил</a></li><li><a href="#" class="psc">web-tourist профил</a></li><li id="chatpanel"><a href="#subpanel" class="chat">Menu</a><div class="subpanel"><h3><span>-</span>Menu</h3><ul><li>test<br />test<br />test<br />test<br />test<br /><br /><br /><br /><br /><br /><br /><br /><br /></li></ul></div></li></ul></script>';
}

И така уж трябва да вградя автоматично css-a , jquery и другия js код.
Лентата се появява с дизайн но частта която трябва да излезе при натискане на Menu не се появява.
Реших че нещо съм прецакал от кода но като го вградя целия код вместо да е в innerhtml а директно в index.php лентата пак си работи.
Някаква идея кое спира работата на другите js файлове ?
Също да спомена че пробвах и в indexa преди да вграда share.js да вградя другите файлове а пък в share.js да върна само div-a с информацията , но пак не работи javascript-a за излизащия div с текста..
Някакви идей... ?
 
proba каза:
Ще се опитам да обясня проблема по възможно най-лесния начин.
Имам една лента която стой най-долу в сайта (като чата на facebook) и към нея с javascript излиза едно поле нагоре (както като пишете с някой в чата на facebook).
Когато си сложа 2 скрипта + jquery , css и html кода в един файл си работи.
Но искам да вкарам всичко в един js файл който да извеждам в началото.
Пробвах така:

index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="share.js"></script>
</head>
<body onLoad="javascript: share();">
<div id="share"></div>
</body>
</html>
Не съм ти прочитал целият пост. Но там където прочетох ми стана ясно почти веднага.
InnerHTML не работи с JS когато през него изкарваш javascript той самият javascript няма да работи!

share.js
function share()
{
document.getElementById('share').innerHTML = '<link rel="stylesheet" type="text/css" href="box.css"/><script type="text/javascript" src="js/jquery-1.3.2.js"></script><script type="text/javascript" src="js/function.js"></script><div id="footpanel"><ul id="mainpanel"><li><a href="index.php" class="home">Начало</a></li><li><a href="#" class="public">Facebook профил</a></li><li><a href="#" class="psc">web-tourist профил</a></li><li id="chatpanel"><a href="#subpanel" class="chat">Menu</a><div class="subpanel"><h3><span>-</span>Menu</h3><ul><li>test<br />test<br />test<br />test<br />test<br /><br /><br /><br /><br /><br /><br /><br /><br /></li></ul></div></li></ul></script>';
}

И така уж трябва да вградя автоматично css-a , jquery и другия js код.
Лентата се появява с дизайн но частта която трябва да излезе при натискане на Menu не се появява.
Реших че нещо съм прецакал от кода но като го вградя целия код вместо да е в innerhtml а директно в index.php лентата пак си работи.
Някаква идея кое спира работата на другите js файлове ?
Също да спомена че пробвах и в indexa преди да вграда share.js да вградя другите файлове а пък в share.js да върна само div-a с информацията , но пак не работи javascript-a за излизащия div с текста..
Някакви идей... ?
 
Скаран съм с javascript-a..
Не успявам да го направя.
Можеш ли някакъв конкретен пример да дадеш да речем поне едно <b>text</b> да връща пък аз ще си го преправя да връща div-a и ругите scripto-ве..

@Ev0luti0N или пък ти ако знаеш някаква алтернатива ? :|
 
proba каза:
Скаран съм с javascript-a..
Не успявам да го направя.
Можеш ли някакъв конкретен пример да дадеш да речем поне едно <b>text</b> да връща пък аз ще си го преправя да връща div-a и ругите scripto-ве..

@Ev0luti0N или пък ти ако знаеш някаква алтернатива ? :|
Ако питаш мене измисли друг начин на това което искаш да направиш.
И аз си играх като моята идея беше да сменям флаш плейъри, но нестана и го оставих само с един. Единственото решение което до момента съм измислил и мисля да го приложа е AJAX. :) Не мисля, че ще натоварва с два реда код. :?:
 
Е ако го дадеш с ajax пак няма да е проблем.
Въпросът е че искам с един script src към даден файл и уникално id да направя едно нещо което да се слага в различни сайтове.
Ще бъде безплатно а и без това няма какво да правя и ми дойде снощи идеята.
Само че засега share.js връща си лентата но не работи това долу.
Ако го дадеш с ajax но да си работят другите js-та пак става , не е проблем.

Благодаря предварително ;)
 
proba каза:
Е ако го дадеш с ajax пак няма да е проблем.
Въпросът е че искам с един script src към даден файл и уникално id да направя едно нещо което да се слага в различни сайтове.
Ще бъде безплатно а и без това няма какво да правя и ми дойде снощи идеята.
Само че засега share.js връща си лентата но не работи това долу.
Ако го дадеш с ajax но да си работят другите js-та пак става , не е проблем.

Благодаря предварително ;)
Другият вариянт, който не мога да кажа дали ще стане е да си изведеш с <head> лентата с css, javascript и просто при натискане на бутона да изкарваш само div-овете. :)
 
Да де но идеята е да речем ти се регистрираш в моя сайт.
Давам ти код от вида на

<script type="text'/javascript" src="http://saitami.com/share.php?id=$your_id"></script>

Ти го слагаш в сайта ти и ти излиза лентата с нещата който ще сложа на нея.
Иначе ако самият div му го дам като код то е безсмислено само да му хоствам един css и 2 js файла.. А и ще може да променя линковете и нещата от лентата а идеята е да е за определена цел тази лента ;)

Затова не се ли сещаш за някакъв начин как да стане.. Нали говореше нещо за ajax :?
 
proba каза:
Да де но идеята е да речем ти се регистрираш в моя сайт.
Давам ти код от вида на

<script type="text'/javascript" src="http://saitami.com/share.php?id=$your_id"></script>

Ти го слагаш в сайта ти и ти излиза лентата с нещата който ще сложа на нея.
Иначе ако самият div му го дам като код то е безсмислено само да му хоствам един css и 2 js файла.. А и ще може да променя линковете и нещата от лентата а идеята е да е за определена цел тази лента ;)

Затова не се ли сещаш за някакъв начин как да стане.. Нали говореше нещо за ajax :?
AJAX, AJAX ама с тоя случай не знам дали ще стане.
Доколкото съм разбрал искаш да е с 1 javascript, не те ли урежда с един iframe. :D
 
Е няма как с iframe.
Ето за какво говоря:

http://store.picbg.net/pubpic/F8/B1/0f62bfcbdbe3f8b1.png

А когато в момента лентата изглежда така само че това в дясно дето е отворено нагоре неще да се отваря..
Затова се чудя как да го направя, но не успявам да го измисля..
 
[js]
var el=document.createElement("script"); //създава DOM елемент с таг script
el.setAttribute("src","http://saitami.com/share.php?id=$your_id"); //задава src на елемента
document.getElementById("share").appendChild(el); //приема елемента като дете на share
[/js]
Може да се правят всякакви елементи така. Препоръчително е style и link да се вмъкват в главата, която се намира така: document.getElementsByTagName("head")[0];
:?:

Edit: може да се задава директно innerHTML:
[js]
el.innerHTML='test';
[/js]
 
http://www.sohtanaka.com/web-design/facebook-style-footer-admin-panel-part-1/
http://www.sohtanaka.com/web-design/facebook-style-footer-admin-panel-part-2/
 

Back
Горе