Може ли да се смени html код при зареждане?

От: Може ли да се смени html код при зареждане?

Offtopic:mad:klk изби рибата с тоя домейн-изречение :lol:
 
От: Може ли да се смени html код при зареждане?

Много се фокусираш върху това, че инклудваш файл. Инклудвай 200 файла ако искаш, накрая в браузъра имаш HTML код, който не се интересува от къде е дошъл. На JavaScript грам не му пука дали ползваш PHP.

На мен не ми става ясно под каква форма съдържанието достига до браузъра. Директно ли си влиза с целия останал HTML, през Ajax ли се праща, говорим или не за <iframe>, ползваме ли jQuery, локално ли искаме да променим нещата или може още на сървъра...
 
От: От: Може ли да се смени html код при зареждане?

Много се фокусираш върху това, че инклудваш файл. Инклудвай 200 файла ако искаш, накрая в браузъра имаш HTML код, който не се интересува от къде е дошъл. На JavaScript грам не му пука дали ползваш PHP.

На мен не ми става ясно под каква форма съдържанието достига до браузъра. Директно ли си влиза с целия останал HTML, през Ajax ли се праща, говорим или не за <iframe>, ползваме ли jQuery, локално ли искаме да променим нещата или може още на сървъра...

Директно влиза кода в браузъра и си е като нормален div. Не е iframe, няма и jQuery. Имам достъп до сървъра на моя файл, в който инклудвам другия. Идеята ми беше по някакъв начин, преди да се изобрази, да се направи някакво търсене с javascript и да се замени кода с друг.
 
От: Може ли да се смени html код при зареждане?

С JavaScript правиш търсене из елементите едва след като те са вече изобразени. Ако сложиш скрипта веднага след тая част, не би трябвало да се забележи промяната. Докато си изобразява HTML, браузъра обръща внимание и на всеки "inline" скрипт. Това не се води добра практика, ама ако сложиш скрипта след целия HTML, най-вероятно ще се забележи за кратко и първоначалния вид на <div>-a.
Другия вариант е да оградиш тая част с <div style="display:none">, да си магериш вътре каквото и когато искаш, и накрая само махаш display:none и всичко се вижда в готовия си вид. Това при положение че не е проблем съдържанието на инклуднатия код да е невидим за известно време.

Вече какво да съдържа скрипта зависи от съдържанието на въпросния HTML код и каква закономерност има в него. Тоя <div> дори да няма id или клас, стига всеки път да е на едно и също място в дървото ще може да се селектира.

Да го ръчкаш на сървъра значи да вземеш кода още в PHP и да правиш промени още там. На никой не му пука имаш или нямаш достъп до файл, каквото може да се инклудне може да се вкара и в променлива под формата на текст. После можеш да си вкарваш и триеш неща в тоя текст преди още да е влезнал в употреба. Това става с някви там ob_* функции. Обаче за PHP един HTML код представлява чист текст и работата става по-засукана, ще трябва да измисляш някакъв regex, или XML, или де да знам.
 
От: Може ли да се смени html код при зареждане?

Стана перфектно с този код:

<script>
document.body.innerHTML = document.body.innerHTML.replace('1', '2');
</script>

Благодаря на всички за оказаното съдействие :)
 
От: Може ли да се смени html код при зареждане?

Е поне да е няква ей такава тъпотия:
<script>
if (document.getElementById("1")) {
document.getElementById("1").id = "2";
}
</script>

Това нещо дето си решил да ползваш има потенциала да развали евентите на всички елементи поставени из елементите в body преди това.
И другия път като задаваш въпрос, нека да е качествено. Както казват, когато задаваш некачествен въпрос получаваш некачествен отговор. Първоначално питаше как да смениш ID на един div, после твърдеше че не е това дето искаш, сега показваш код дето точно това прави :shock:
 
От: От: Може ли да се смени html код при зареждане?

Е поне да е няква ей такава тъпотия:


Това нещо дето си решил да ползваш има потенциала да развали евентите на всички елементи поставени из елементите в body преди това.
И другия път като задаваш въпрос, нека да е качествено. Както казват, когато задаваш некачествен въпрос получаваш некачествен отговор. Първоначално питаше как да смениш ID на един div, после твърдеше че не е това дето искаш, сега показваш код дето точно това прави :shock:
Не става въпрос за ID, а за целия код на div-а, в примера сложих 1 и 2, колкото да се разбере кое с какво се заменя. Самия div няма id, така че не мога по него да го откривам, иначе и аз първоначално бях намерил такъв вариант, но не става.

Точният код, който съм сложил в момента е като този:

<script>
document.body.innerHTML = document.body.innerHTML.replace('<div style="visibility:visible;background-color:#C0C0C0;width:100%;text-align:center;font-size:14px;padding:5px 0px;display:block;color:#020202;">', 'тук е променения код');
</script>

Тествах го и по принцип работи без проблем на chrome и на firefox, сано ма IE не сработва, но и без друго почти никой не го ползва него.
 
От: Може ли да се смени html код при зареждане?

Не искам да прозвучи като заяждане, но класовете и ID-тата в HTML не са за красота :wink:
 
От: Може ли да се смени html код при зареждане?

Щото аз като пробвах точно това дето си написал отгоре дето има само 1 и 2, то ми променя точно ID-то на елемента и нищо друго.

<html>
<head></head>
<body>
<div id="1" data-something="1" class="1" style="font-size:10px">101 Dalmatians</div>
<script>
document.body.innerHTML = document.body.innerHTML.replace('1', '2');
</script>
</body>
</html>

Ето в какво се превръща: http://prntscr.com/7wta34

И пак е най-добре да се прави с нормална селекция без да се закача всичко останало, но ти си знаеш :)
 
От: Може ли да се смени html код при зареждане?

Не искам да прозвучи като заяждане, но класовете и ID-тата в HTML не са за красота :wink:

И как да ги добавя във файла, до койт нямам достъп?
 
От: Може ли да се смени html код при зареждане?

Щото аз като пробвах точно това дето си написал отгоре дето има само 1 и 2, то ми променя точно ID-то на елемента и нищо друго.



Ето в какво се превръща: http://prntscr.com/7wta34

И пак е най-добре да се прави с нормална селекция без да се закача всичко останало, но ти си знаеш :)

Ами не е аз си знам, просто друг вариант не виждам. Какво предлагаш, защото другите неща, които дадохте въобще не работят. Този див няма никво ID, не е възможно да му добавям, защото както казах, до онзи файл нямам никакъв достъп.
 
От: Може ли да се смени html код при зареждане?

Всеки който иска да мами трябва да може без чужда помощ. Ако искаш да стигнеш това ниво започни от началото - http://www.w3schools.com/js/js_htmldom.asp
Макар че не разбирам защо JS, след като ползваш сървър сайд и може да правиш каквото си пожелаеш с "взетия html"
 
От: Може ли да се смени html код при зареждане?

Ами не е аз си знам, просто друг вариант не виждам. Какво предлагаш, защото другите неща, които дадохте въобще не работят. Този див няма никво ID, не е възможно да му добавям, защото както казах, до онзи файл нямам никакъв достъп.

Не е задължително един елемент да има ID за да може да се селектира в javaScript! Елементи се селектират и по клас, и по име на таг, и по родствена връзка с други елементи - родители (на горно ниво), деца (вътре) и такива дето се намират на същото ниво (next, previous). Ако взаимното разположение на една група елементи не се променя, тогава можеш да хванеш който искаш елемент и да стигнеш до който искаш друг, независимо къде се намира, без ID-та, без класове и даже без имена на таговете.
 
От: Може ли да се смени html код при зареждане?

Ако въпросния файл е статичен HTML, най-добре си го изтегли и си го изтегли. Ако не е без цялата концепция трудно ще ти бъда полезен.
 
От: Може ли да се смени html код при зареждане?

@AseasRoa евала за упоритостта! Толкова хора се изредиха да му предложат 100 вариант и той си знае неговата.
 
От: Може ли да се смени html код при зареждане?

@AseasRoa евала за упоритостта! Толкова хора се изредиха да му предложат 100 вариант и той си знае неговата.

Аз го оправих с примера, който дадох по-горе и си работи без проблем. Вие започнахте да ми казвате, че не е добре и че не трябва да е така. От вашите предложения нито едно не работи, поне не при мен. Естествено, че ги тествах, но просто не работят. Както и да е, темата вече не е актуална, защото проблема ми е решен.
 
От: Може ли да се смени html код при зареждане?

Браво! Значи все пак има хепи енд!
 
От: Може ли да се смени html код при зареждане?

@StefanIvanov добави едно "засега" след "работи без проблем". Да променяш innerHTML-а на body-то по този начин ми се вижда изключително неразумно решение.
И аз не разбрах защо не промениш html-a още преди да го изпляскаш при клиента. Става изключително лесно с един xpath. Ако ще е с js, то селектирай си конкретния div елемент и го промени директно. Опитай се да разбереш какво ти е написал AseasRoa, прочети още няколко пъти мнението му и/или се порови малко повече в google.
 

Горе