Jag är knappast någon kung på JS, jag var därför väldigt nöjd när jag lyckades knåpa ihop det här scriptet som funkar perfekt i IE och Safari. Däremot vill inte Firefox lira som jag vill, är inte det skumt när det e samma motor som Safari? Hur som helst, här e scriptet, hojta om ni ser något fel, tack.
function setCursorAtPos(field,pos){
pos=(pos)?Math.min(pos,field.value.length):field.value.length;
field.focus();
if(document.all){
var tr=field.createTextRange();
tr.moveStart('character',pos);
tr.select();
}
}
function doQuote(messid) {
document.replyform.replyfield.value = "[ quote]"+ document.getElementById('text'+[messid]).innerText +"[ /quote]"+ '\n\n';
document.replyform.replyfield.focus();
setCursorAtPos(document.replyform.replyfield);
window.scrollTo( 0, 400000 );
}
OBS! Jag gjorde ett extra mellanslag i QUOTE -taggarna eftersom annars replacas de av Webforums kod.
.innerText är Microsoft-specifikt och är inte standardiserat och stöds därför inte av Mozilla. Använd DOM istället.
Nu skriver du inte vilken typ av HTML-element som returneras av document.getElementById('text'+[messid]). Hur man kommer åt texten med DOM beror lite på vilket HTML-element som du vill manipulera. Om det rör sig om ett enkelt HTMLElement, t.ex. <b>, <span>, <em>, som bara innehåller en rad text utan andra HTML-element, så hämtar du texten genom att referera till nodeValue på elementets första childNode. Så här:
(Mozilla gillar inte heller att man refererar slarvigt till objekt i dokumentet. Därför bör du ändra till DOM-kompatibelt sätt att referera till ditt textfält, som ovan.)
381 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91