România
Roportal.ro

iframe html javascript

Început de iunia_madalina, Sâm 15 nov 2008 · 4 răspunsuri · 5.221 vizualizări

iunia_madalina3 mesaje#1

buna. am o pagina html in care am un iframe (o alta pagina html). as vrea sa pot selecta text din acest iframe si apasand un buton din afara iframe-ului sa imi copieze textul intr-un text box (tot din afara iframe-ului). Am cautat pe net cateva zile si nu am gasit nimic care sa ma ajute sa pot comunica intre iframe si parinte. Am deja o functie javascript care imi copiaza text intr-un text box dar merge numai pentru textul din afara iframe-ului.

Codul este urmatorul....

....

<p>Ceva text din afara iframe-lui.</p>

<iframe name="iframe1" id="iframe1" src="http://www.devittwinery.com/our_wines.html"></iframe>

<form>

<input type="text" name="textbox1" value="" />

<input onclick="copyit(this.form.textbox1)" type="button" value="Copy" name="btnCopy" />

</form>

....

iar functia javascript este:

function copyit(theField) {

var selectedText = document.selection;

if (selectedText.type == 'Text') {

var newRange = selectedText.createRange();

theField.focus();

theField.value = newRange.text;

} else {

alert('select a text in the page and then press this button');

}

}

aceasta este varianta care functioneaza pt textul din afara iframe-ului. in cazul in care incerc sa pun in loc de "var selectedText = document.selection;" ceva de genul:

iframe = document.getElementById("iframe1");

var selectText =iframe.contentWindow.selection;

imi da eroare...

Ma poate ajuta cineva cu niste sfaturi?... pls :lol: Merci

Paul Brahtl2.177 mesaje#2

uite un exemplu de doua fisiere care comunica pe relatia parent-frame:

fisierul index.htm

<html>

<script>

function SetChild()

{

window.frames["ifrmChild"].document.all("txtSubindex").value=document.all("txtIndex").value;

}

</script>

<body>

<input type="text" value="aaa" ID="txtIndex"/>

<input type="button" onClick="SetChild();" value="Pune valoare in iframe"/>

<br/>

<iframe src="subindex.htm" id="ifrmChild">

</body>

</html>

si fiserul subindex.htm aflat in iframe

<html>

<script>

function PutParent()

{

window.parent.document.all("txtIndex").value=document.all("txtSubindex").value;

}

</script>

<body>

<input type="text" value="bbb" ID="txtSubindex"/>

<input type="button" onClick="PutParent();" value="Pune valoare in parent"/>

</body>

</html>

iunia_madalina3 mesaje#3

Merci pentru exemplu! M-a ajutat foarte mult.

Acum codul meu arata cam asa:

<html>

<script>

function Settext()

{

var selectedText=document.getElementById('ifrmChild').contentWindow.getSelection();

document.all("txtIndex").value = selectedText;

}

</script>

<body>

<input type="text" value="aaa" id="txtIndex"/>

<input type="button" onClick="Settext();" value="Pune valoare in parent"/>

<br/>

<iframe src="subindex.html" id="ifrmChild">

</body>

</html>

care merge perfect in firefox .

Insa problema mea acum e alta. Daca pagina html din iframe face parte din domeniul meu totul e ok, insa eu am nevoie de pagini din afara domeniului meu. In aceasta situatie imi da eroare. Am cautat pe net si am inteles ca pagina din iframe trebuie sa fie obligatoriu din acelasi domeniu cu parintele. Intrebarea mea este: exista vreo metoda pentru a putea selecta in iframe text din pagini din afara domeniului meu?

Merci!

Editat Mar 18 nov 2008 12:23

Paul Brahtl2.177 mesaje#4
iunia_madalina a scris:
Daca pagina html din iframe face parte din domeniul meu totul e ok, insa eu am nevoie de pagini din afara domeniului meu. In aceasta situatie imi da eroare. Am cautat pe net si am inteles ca pagina din iframe trebuie sa fie obligatoriu din acelasi domeniu cu parintele. Intrebarea mea este: exista vreo metoda pentru a putea selecta in iframe text din pagini din afara domeniului meu?

Ce eroare iti da daca e pagina din alt domeniu?

In mod normal nu conteaza din ce domeniu e pagina. Script-ul Java se executa la client. Cred ca eroarea are alta cauza, nu domeniul.

iunia_madalina3 mesaje#5

Aveam urmatoarea eroare: "permission denied". Am cautat pe net si am inteles ca din cauza ca javascriptl nu permite selectarea textului daca pagina este din alt domeniu. Recomandarea era sa pun paginile care ma intereseaza pe server. Si asta fac acum.

Multumesc pentru ajutorul acordat.

← Înapoi la Programare