Autor | Zpráva | ||
---|---|---|---|
Jakub Šebík Profil |
#1 · Zasláno: 16. 5. 2011, 18:14:12
Dobrý den,
chci se zeptat, jestli je možné "převést" php soubor do javascriptu. O co jde: Potřebuji, když se zákazní zaregistruje, dostane js kód, který si umístí na stránku. Nejdříve jsem to zkoušel s php, ale funkce include() na jiný server nejde. V tom php kódu jsou jen webové odkazy (je to jaká si reklamní lištička). Šel by tento js include? Díky. |
||
Witiko Profil |
#2 · Zasláno: 16. 5. 2011, 18:26:36
Jakub Šebík:
Jediné, co je možné, je načíst si dynamicky generovaný soubor javascriptu: <script src="http://stranky/soubor.php?bla=bla"></script> Daný script pak může libovolně manipulovat s dokumentem (přidat lištičku). |
||
Jakub Šebík Profil |
#3 · Zasláno: 16. 5. 2011, 19:11:17
Witiko:
Nefunguje, nic se nezobrazí. Není ještě jiná možnost? |
||
Keeehi Profil |
#4 · Zasláno: 16. 5. 2011, 19:13:57
Jakub Šebík:
Ale funguje, jenom ty tam máš něco špatně. Živá ukázka by nebyla? |
||
Witiko Profil |
#5 · Zasláno: 16. 5. 2011, 19:16:04 · Upravil/a: Witiko
Jakub Šebík:
Předpokládám, že se nesnažíte nahrát místo scriptu surový html kód? |
||
Jakub Šebík Profil |
#6 · Zasláno: 16. 5. 2011, 19:24:14
Keeehi:
Ano, ukázka by byla Zde se má zobrazovat lišta a zde se zaregistrovává web. Witiko: Omlouvám se, ale přesně netuším co to znamená. |
||
_es Profil |
#7 · Zasláno: 16. 5. 2011, 19:55:31
Witiko:
> Jakub Šebík: > Předpokládám, že se nesnažíte nahrát místo scriptu surový html kód? Presne o to sa pokúša. Jakub Šebík: Značkou <script> nahráš kód JavaScriptu. A ten má prístup k prvkom na stránke, môže ich modifikovať alebo pridávať nové.
Ak neovládaš JS, skús formulovať, čo presne má ten kód robiť, alebo, ak to je zložitejšie, to dať do sekcie „Práce a zakázky“. |
||
Keeehi Profil |
#8 · Zasláno: 16. 5. 2011, 19:58:24
Jakub Šebík:
Ale to je právě ten problém, o kterém psal Witiko. Vy se snažíte místo javascriptu tam dát „surový html kód“. To samozřejmě nepůjde. Navíc, i kdyby jste to spravil, cpe se vám tam ještě reklamní lišta freehostingu. Takže i kdyby jste tu svojí lištu přepsal do JS, stále vám tam bude parazitovat ta reklamní lišta, kvůli které to nejspíše fungovat nebude. |
||
Witiko Profil |
#9 · Zasláno: 16. 5. 2011, 19:59:54 · Upravil/a: Witiko
Jakub Šebík:
Tak instruujte uživatele, ať si script tag vloží do tělíčka stránky. Php kód ať navrací: document.write(" ... html kód reklamy ..."); Veškeré " v html kódu nahraďte za '. Pokud si chcete ohmatat, co to dělá, vložte si následující kód do těla libovolné (x)html stránky: <script>document.write("<b>Tučný ukázkový text</b>");</script> A nebo pak jak říká _es je tu také sekce „Práce a zakázky“. |
||
Jakub Šebík Profil |
#10 · Zasláno: 16. 5. 2011, 20:22:25
_es:
Dobře, eště skusím a pokud nepude skusím dát do "Práce a zázraky". Keeehi: Skoušel jsem to i na localhostu (xampp) a také nejde, takže myslím, že reklamou to není. Witiko: To bude trošku těžké, protože jsem začátečník, mám velice složitý kód na náhodné generování odkazů. Pokud budete chcít, script dodám, ale dát vše do document.write mi přijde dosti složité. Děkuji |
||
Witiko Profil |
#11 · Zasláno: 16. 5. 2011, 20:30:15 · Upravil/a: Witiko
Jakub Šebík:
Nemělo by, jednoduše na začátek php scriptu přidáte echo "document.write(\""; a na konec echo "\");";. Výsledný generovaný dokument není tak veliký, divil byste se, kolik toho lidé dokážou procpat přes document.write. Délka řetězce v javascriptu je teoreticky omezena jen velikostí RAM. :-) Druhá možnost je samozřejmě napsat mírně sofistikovanější javascriptový kód a nahrát reklamu do stránky až po jejím načtení. To by nicméně nejspíš vyžadovalo větší modifikace v daném php souboru, nabízím myslím v prvním návrhu tu nejschůdnější cestu. |
||
Jakub Šebík Profil |
#12 · Zasláno: 16. 5. 2011, 20:47:26
Witiko:
Prosím vás, nějak jsem se v tom ztratil. Podívejte se na stránku, a řekněte co kde mám udělat. Jinak myslím že jsem script na generování odkazu prorval document.write správně. Oby se to doufám rychleji vyřešilo, dám vám sem zdrojový kód: Soubor, který to vše vygeneruje:
|
||
_es Profil |
#13 · Zasláno: 16. 5. 2011, 21:12:03
|
||
Jakub Šebík Profil |
#14 · Zasláno: 16. 5. 2011, 21:21:57
_es:
Prosím, mohl by být nějaký příklad? Děkuji |
||
Witiko Profil |
#15 · Zasláno: 16. 5. 2011, 21:22:33 · Upravil/a: Witiko
Jakub Šebík:
Do document.write musíte vecpat veškerý kód včetně definice stylů, které máte nad a pod scriptovanou částí daného souboru. V javascriptovém kódu se žádné tagy nesmí objevit, vše musí být jako textový řetězec uvnitř document.write. Tedy document.write(" vložte na úplný začátek souboru a "); na konec. V celém generovaném kódu se pak nesmí objevit ", proto veškeré " nahraďte za '. Php script musí vygenerovat následující text: document.write("<style>.reklamni_listicka{margin-top: 7px;background: black;color: white;}a{color: white;}a:hover{color: red;}a:active{color: yellow;}.text{color: yellow;}</style><div class='reklamni_listicka'>atd. atd.</div></center>"); Všimněte si <div class='reklamni_listicka'> místo <div class="reklamni_listicka">. Skutečně veškeré " v kódu je nutné nahradit buď za \" nebo za ', jinak nám apostrof přeruší řetězec a html kód nám "vyhřezne". :-) |
||
Jakub Šebík Profil |
#16 · Zasláno: 16. 5. 2011, 21:28:59 · Upravil/a: Jakub Šebík
Witiko:
A co takhle jen zaměnit document.write(""); za document.write('') ? Takhle by to taky šlo? Edit: Udělám to jen " za ' protože " je tam miň :) |
||
Jakub Šebík Profil |
#17 · Zasláno: 16. 5. 2011, 21:32:40
Áh Tak konečně jiz všen funguje.
Akorát se mi tam zobrazuje hned vedli lištičky ta funkce document.write. Zobrazuje se zždy takto? Nebo je to jen někde mnou udělaná chyba? Děkuji |
||
Witiko Profil |
#18 · Zasláno: 16. 5. 2011, 21:35:16
Jakub Šebík:
Ano, to bude asi přijatelnější možnost. Vlastně jsem si v té liště ani žádných ' nevšimnul. :-) „Akorát se mi tam zobrazuje hned vedli lištičky ta funkce document.write“ To by nemělo, pokud jste tam document.write nenapsal omylem 2x, respektive nenechal tam to document.write, které v kódu máte uvedené v tomto příspěvku. |
||
Jakub Šebík Profil |
#19 · Zasláno: 16. 5. 2011, 21:42:23
Witiko:
Ah, ano jsem jelito :-). Zapoměl jsem ho vymazat z echa. Děkuji za vše v tomto tématu. Moc jste mi pomohl. |
||
_es Profil |
#20 · Zasláno: 16. 5. 2011, 21:43:44
Witiko:
„Php script musí vygenerovat následující text“ No v tom texte je ešte nutné odstrániť všetky zalomenia riadka, alebo, ak sú vo výslednom kóde potrebné, tak ich nahradiť za \n .
|
||
Witiko Profil |
#21 · Zasláno: 16. 5. 2011, 22:39:24 · Upravil/a: Witiko
|
||
Časová prodleva: 13 let
|
0