[JS] Как се достъпва елемент във външен файл с HTML DOM?


2

Здравейте, опитвам се да прочета и да заместя елемент във външен файл, но без успех. 

Когато става въпрос за достъпване на елемент в същия файл решението е доста лесно:

<p id="myPar">I am a paragraph.</p>
<p>
<button type="button" onclick="myFunction()">Try it</button>
</p>
<script>
function myFunction()
{
document.getElementById("myPar").innerHTML="Hello Dolly";
}
</script>
 
Но когато се опитвам да достъпвам друг файл с механизми, описани в интернета, не успявам (затова няма и да ги описвам тук).
 
Някой сеща ли се как да се случи това?



Отговори



0
Здравей,
Можеш ли да обясниш по-подробно, как така друг файл, къде е този друг файл.
:)

от CaptCortez (1242 точки)


0
Ок, примерно, на компютъра имам test.html, който съдържа скрипт за тестване. Страницата, която ще тествам е www.site.com/page_for_testing.htm. Искам като пусна скрипта, да може да ми изпише, какво съдържа съптветното ID или да го замести.


0
Тежко е, не мисля, че е възможно да едитваш файл който е качен на домейн от твоя локалхост. Надявам се да се включи някой с решение, но аз не съм правил подобно нещо никога.

от CaptCortez (1242 точки)


0

Здравей,

Според мен лесно можеш да прочетеш дадена страница. Вариантите за които се сещам са да я заредиш в iframe, или през jquery  да напишеш: $("#http-response").load("sample.html"); Така обаче ще си я обработваш локално. Demo

Примера работи така:
1. $("#http-response").load("test.html"); Първо се зарежда test.html в дива който ти е с id="http-response", Но след това проблема беше че не може вземеш веднага да обработваш елемента testparagraph.
За целта добавяме допълнителна функция която да се стартира след зареждане на цялата html сраница, след това взимаме елемента testparagraph. В случая се скрива заради функцията x.hide(); (сложил съм я за да покажа че го достъпваш.) Ти си я изтрий, сложи число примерно 100 милисекунди и програмата трядва да работи добре.


Промяна динамично в html-ла на друга страница не знам как можеш да направиш. По-скоро мисля че неможе през JavaScript. Иначе като вариант ако страницата се зарежда динамично от някакви запазени данни можеш през другата страница да бръкнеш и да промениш нещо в данните.


от stanev.plamen (1143 точки)


0

JavaScript не може реално да променя файлове на който и да е сървър.

Тоест с него можеш да четеш и променяш, например HTML файлове, но те реално не се променят, а само така изглежда в браузъра, в който работи скрипта.  

Чрез JS, можеш да четеш и взимаш файлове, техните елементи, класове и т.н. , ако имаш достъп до съответния файл (всеки файл на сървъра си има права за достъп). За да четеш такъв файл, трябва да направиш заявка (Ajax) да я изпратиш, да вземеш резултата и вече да си я манипулираш:

http://www.w3schools.com/ajax/

Съответно можеш да вземеш цялото съдържание, и да му сменяш селектори, стилове, да добавяш елементи и т.н. , но реално само на твоя браузър и в рамките на сесията.  




0
Благодаря за отговорите. Ще питам нещо по-конкретно - мога ли да чрез локален файл да достъпя един адрес в интернета, по ID да попълня полетата (например логин и парола) и да натисна Login. И в случай, че успея, да продължа с другите неща на следващата страница, а ако не успея, да получа съобщение за това? Благодаря.



0
Пробвай това:

// трябва да имаш jquery-2.0.2.js в папка scripts // "sample.html" смени с адреса който искаш // вече в твоя js файл пробваш да правиш операциите по заредената локално страница

от stanev.plamen (1143 точки)

0
Така. Направих папка scripts, свалих в нея jquery-2.0.2.js. В test.html имам

Hello

Файла със сктипта промених така:


Но явно не правя нещо както трябва...