Toon posts:

[js]invoegen van een Node wil niet

Pagina: 1
Acties:

Verwijderd

Topicstarter
In navolging van mijn vorige topic waar ik problemen had om de cursorpositie te vinden in IE, dit topic.

Ik probeer in een iframe een element in te voegen waar de cursor zich op dat ogenblik bevind. (een link in dit geval, maar het geld voor elk element).

Het is mij nu gelukt (na heel veel werk om het in Mozilla voor elkaar te krijgen), maar in IE wil het niet werken en krijg ik echt een heel vaag resultaat te zien.

IE parst een setAttribute als het element :? ik weet niet wat ik evt nog meer kan meegeven zodat IE het wel doet, het moet mogelijk zijn daar ben ik van overtuigd en waarschijnlijk is het simpel.

linkje

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ik snap niet precies het probleem :?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Klik in het iframe (kleine window) en klik op test IE. Dan zie je het wel

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ow, je bedoelt dat er "JavaScript://" in terecht komt ? Ik neem aan dat de volledige link erin terecht moet komen?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
yup :) test maar in Mozilla 1.3b + (met de juiste link) dan zie je wel wat ik bedoel.

[ Voor 87% gewijzigd door Verwijderd op 24-06-2003 13:58 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

En als je die zut eens test buiten een editable Iframe? Want mogelijk dat de scriptbeperkingen hier roet in het eten gooien?

En welke code wordt er precies gegenereerd?

[ Voor 17% gewijzigd door Bosmonster op 24-06-2003 14:25 ]


Verwijderd

Topicstarter
Dit is wat er ingevoegd moet worden:

HTML:
1
2
3
4
5
6
7
8
9
10
11
12
function terugIE()
{
    el = document.getElementById('hiero')
    newlink = document.createElement('a');
    newtxt = 'terug'
    newlink.setAttribute('href', 'javascript://');
    newlink.setAttribute('onclick', 'history.go(-1)');
    txtval = document.createTextNode(newtxt);
    newlink.appendChild(txtval);
    if(document.all)insertNodeAtSelectionIE(el.contentWindow, newlink);
    else insertNodeAtSelection(el.contentWindow, newlink);
}


waar 'hiero' de iframe is.

[ Voor 11% gewijzigd door Verwijderd op 24-06-2003 14:59 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

ja dat zie ik.. maar welke html wordt hieruit gegenereerd.. dus wat is de innerHTML van het editable iframe hierna? Dan zie je wat er fout gaat.

(je krijgt toch wel de gewijzigde source in een editable iframe als je het DOM aanpast :? Anders is het nogal nutteloos om dit in een editable iframe te gaan zitten proberen ;))

[ Voor 41% gewijzigd door Bosmonster op 24-06-2003 15:09 ]


Verwijderd

Topicstarter
ja sorry was even weg van mijn comp. :)

dit is de code die gegenereerd word door IE:
HTML:
1
<p>javascript://<br><br><br></p>


dit is de code die gegenereerd word door Mozilla:
HTML:
1
<a onclick="history.go(-1)" href="javascript://">terug</a>

edit:

sorry foutje, heb het hersteld.

[ Voor 46% gewijzigd door Verwijderd op 24-06-2003 15:47 ]


Verwijderd

Zet in je insertNodeAtSelectionIE(win, insertNode) functie dit:
sel.pasteHTML(insertNode.outerHTML);
ipv die:
sel.text = insertNode;

Het kan eigenlijk nog simpeler:
sel.pasteHTML('<a onclick="history.go(-1)" href="javascript://">terug</a>');
maar je had toch al die insertNode gemaakt.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

of gewoon

execCommand ('CreateLink','javascript:history.go(-1)',false)

oid :) Maar goed.. hij zal wel zijn redenen hebben om het via het DOM te doen.. :P

[ Voor 16% gewijzigd door Bosmonster op 24-06-2003 20:15 ]


Verwijderd

Topicstarter
Martijn22:
Het 2e voorbeeld werkt perfect, dank je wel :) echter het eerste werkt het helaas niet, ik zal nog even verder kijken naar wat er precies fout gaat (ik krijg een 'undefined' te zien in de iframe). Ik kan echter weer vooruit met zoeken op google.

Bosmonster:
er moet ook nog een stukje tekst worden gegenereerd, als je een betere manier weet dan hoor ik dat graag Bosmonster. (En vervolgens bij de cursor worden ingevoegd) IK had het vermoeden dat het alleen via de DOM bereikt kon worden (of via een document.write, maar dat vind ik geen optie.)

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 19-08 22:14

Bosmonster

*zucht*

als het alleen daar om gaat, doe dan gewoon pasteHTML... 10x makkelijker en waarschijnlijk ook een stuk sneller :)

Verwijderd

Topicstarter
dat zal ik maar doen dan :) iig bedankt.
Pagina: 1