Jesper TMedlem sedan nov. 20017 144 inlägg
- Jag kör en iframe med designmode som jag försöker få focus på med ett onloadevent men inget händer.
Går det över huvud taget?
<body onload="document.getElementById('iView').focus();">
...
<iframe id="iView"></iframe>
- Om jag skall öppna en befintlig sida i iframen(designmode) med fso så måste jag väl på någe vis först skriva in hela filen i en vanlig textarea och sedan limma in den i iframen i sin tur. Eller?
- Problemet är att onload på body:n triggas före iframen laddat klart. Testa detta
<body onload="alert('body');">
<iframe src="http://www.aftonbladet.se" onload="alert('iframe');"></iframe>
Så varför inte sätta focus:et i själva sidan i iframe:n?
- Förstår inte riktigt, men du sätter väl en src på din iframe med sidan som har en textarea?
Så vad har du i Iframe:n? Vad ska vara editerbar om du inte har någon content?
Jesper TMedlem sedan nov. 20017 144 inlägg I iframen så skall den editerbara sidan öppnas, men jag fattar inte riktigt vad du menar.
Jesper TMedlem sedan nov. 20017 144 inlägg Ok, man verkar kunna sätta sidans adress i iframens src. Det var ju bra.
Jag kan också sätta onload="this.focus()" i iframen för att få markören på plats.
Men ett problem kvarstår. Om jag inte har klickat i iframen och te.x. försöker pasta in dagens datum så lägger sig datumet utanför iframen, högst upp på sidan och inte i iframen. Även fast markören blinkar i iframen.
<a href="javascript:void(0);" onClick="iView.document.selection.createRange().pasteHTML('2003-05-30')">Dagens datum</a>
Hur kan man fixa det?
Tror att du får skicka med mer kod för att kunna förstå detta. Verkar dock som om du refererar fel och får resultatet på själva huvudsidan o inte i iframe:n?
När du är i själva Iframe:n behöver du inte referera till den.
Jesper TMedlem sedan nov. 20017 144 inlägg Ja det är inte så märkvärdigt men här kommer principen i alle fall.
<body onload="iView.document.designMode = 'On';">
<iframe name="iView" width="400" height="100" id="iView"></iframe>
<a href="javascript:void(0);" onClick="iView.document.selection.createRange().pasteHTML('2003-05-30')">Dagens datum</a>
</body>
Jesper TMedlem sedan nov. 20017 144 inlägg Glömde att skriva att jag även har iView.focus(); i "body onload":
onload="iView.document.designMode = 'On';iView.focus();"
Då ser ni att även fast markören blinkar i iframen så lägger sig datumet utanför.
<body onload="iView.document.designMode = 'On'; iView.focus();">
<iframe id="iView" width="400" height="100"></iframe>
<a href="#" onClick="document.getElementById('iView').contentWindow.document.body.innerHTML = '2003-05-30'; return false;">Dagens datum</a>
</body>
Jesper TMedlem sedan nov. 20017 144 inlägg Det är mindre lyckat för då raderas allt jag skrivit in när jag trycker på "länken".
dectgapMedlem sedan sep. 20021 655 inlägg Ändra det till att du bara lägger till då:
<body onload="iView.document.designMode = 'On'; iView.focus();">
<iframe id="iView" width="400" height="100"></iframe>
<a href="#" onClick="document.getElementById('iView').contentWindow.document.body.innerHTML += '2003-05-30'; return false;">Dagens datum</a>
</body>
Eller kör med pasteHTML, för när man kör med
innerHTML += "sträng"
så är det rätt långsamt (ej bra för performance)