Javascript functie niet In Netscape
ik heb een javasript functie gevonden om in een textveld tags rond een geselecteerd veld te zetten. nu wil deze functie alleen maar werken in internet explorer, en dat is nu niet bepaald mijn favoriete browser.
nu er staat wel in da de browser ie4 of hoger moet zijn, maar als ik deze statement verwijder werkt hij ook niet. kan iemand me uitleggen hoe ik dit kan oplossen ? en waarom ?
ben toch maar FF aan het downloaden voor de zien of het daar niet werkt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
function addTag(t){
ua = navigator.userAgent;
if (ua.indexOf("MSIE")>=1) {
sel = document.selection.createRange();
par = sel.parentElement();
if (par.type != "textarea") {
alert("Please select text.")
}
else {
sel.text="<"+t+">"+sel.text+"</"+t+">";
sel.select();
par.focus();
}
}
else {
alert('This works only in IE4 or above');
}
}
?>
function addTag(t){
ua = navigator.userAgent;
if (ua.indexOf("MSIE")>=1) {
sel = document.selection.createRange();
par = sel.parentElement();
if (par.type != "textarea") {
alert("Please select text.")
}
else {
sel.text="<"+t+">"+sel.text+"</"+t+">";
sel.select();
par.focus();
}
}
else {
alert('This works only in IE4 or above');
}
}
?>
nu er staat wel in da de browser ie4 of hoger moet zijn, maar als ik deze statement verwijder werkt hij ook niet. kan iemand me uitleggen hoe ik dit kan oplossen ? en waarom ?
ben toch maar FF aan het downloaden voor de zien of het daar niet werkt.
Gesponsorde koppelingen:
Bekend probleem.
Misschien heb je hier wat aan, ik denk het wel.
Misschien heb je hier wat aan, ik denk het wel.
oke, ik moet dus document.getSelection() gebruiken inplaats van document.selection, maar hoe pas ik dit nu aan in mijn script ?
en is het dan mogelijk om bv:
dit werkt niet! kan iemand het mss verbeteren, in javascript ben ik een absolute beginner, moet er dringend eens een boek over lezen!
en is het dan mogelijk om bv:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
function underline(){
ua = navigator.userAgent;
if (ua.indexOf("MSIE")>=1) {
sel = document.selection.createRange();
par = sel.parentElement();
if (par.type != "textarea") {
alert("Please select text.")
}
else {
sel.text="<u>"+sel.text+"</u>";
sel.select();
par.focus();
}
} else {
sel = document.getSelection().createRange();
par = sel.parentElement();
if (par.type != "textarea") {
alert("Please select text.")
}
else {
sel.text="<u>"+sel.text+"</u>";
sel.select();
par.focus();
}
}
}
?>
function underline(){
ua = navigator.userAgent;
if (ua.indexOf("MSIE")>=1) {
sel = document.selection.createRange();
par = sel.parentElement();
if (par.type != "textarea") {
alert("Please select text.")
}
else {
sel.text="<u>"+sel.text+"</u>";
sel.select();
par.focus();
}
} else {
sel = document.getSelection().createRange();
par = sel.parentElement();
if (par.type != "textarea") {
alert("Please select text.")
}
else {
sel.text="<u>"+sel.text+"</u>";
sel.select();
par.focus();
}
}
}
?>
dit werkt niet! kan iemand het mss verbeteren, in javascript ben ik een absolute beginner, moet er dringend eens een boek over lezen!
Je moet niet in plaats van, maar ook gebruiken.
Dit is trouwens echt een pure gok, aangezien ik deze functies van javascript nou net niet echt vaak gebruik :)
Misschien dat deze werkt:
function getSel(tag)
{
var txt = '';
var foundIn = '';
if (window.getSelection)
{
txt = window.getSelection();
window.getSelection() = '<'+tag+'>'+txt+'</'+tag+'>';
}
else if (document.getSelection)
{
txt = document.getSelection();
document.getSelection() = '<'+tag+'>'+txt+'</'+tag+'>';
}
else if (document.selection)
{
txt = document.selection.createRange().text;
document.selection.createRange() = '<'+tag+'>'+txt+'</'+tag+'>';
}
else return;
}
Dit is trouwens echt een pure gok, aangezien ik deze functies van javascript nou net niet echt vaak gebruik :)
Misschien dat deze werkt:
function getSel(tag)
{
var txt = '';
var foundIn = '';
if (window.getSelection)
{
txt = window.getSelection();
window.getSelection() = '<'+tag+'>'+txt+'</'+tag+'>';
}
else if (document.getSelection)
{
txt = document.getSelection();
document.getSelection() = '<'+tag+'>'+txt+'</'+tag+'>';
}
else if (document.selection)
{
txt = document.selection.createRange().text;
document.selection.createRange() = '<'+tag+'>'+txt+'</'+tag+'>';
}
else return;
}
Gewijzigd op 11/12/2005 18:41:00 door Jelmer rrrr
@jelmer, nee deze blijkt ook niet te werken
heeft er nog iemand een idee hoe ik dit zou kunne oplossen ? heb zelf ook al veel gepobeert, maar telken werkt het alleen maar in IE!
Klopt, in Netscape en Gecko browsers werkt dat niet omdat die het Range object niet kennen. Ik heb ook al eens geprobeerd een workaround te vinden, zonder succes.
edit: ik nog eens lopen snuffelen, en mozilla browsers kennen wel zoiets als selectionStart en selectionEnd.
Als je textarea 'message' heet kun je dit doen:
var sel_begin = yourform.message.selectionStart;
var sel_eind = yourform.message.selectionEnd;
Met behulp van deze vars kun je de tekst in drie stukken delen via substring (): het deel voor de selectie, de selectie zelf, en het deel na de selectie.
edit: ik nog eens lopen snuffelen, en mozilla browsers kennen wel zoiets als selectionStart en selectionEnd.
Als je textarea 'message' heet kun je dit doen:
var sel_begin = yourform.message.selectionStart;
var sel_eind = yourform.message.selectionEnd;
Met behulp van deze vars kun je de tekst in drie stukken delen via substring (): het deel voor de selectie, de selectie zelf, en het deel na de selectie.
Gewijzigd op 11/12/2005 20:11:00 door Jan Koehoorn
oke, het zal dan maar in internet explorer worden denk ik, meeste klanten gebruiken dat toch, zeker in bedrijven. en in netscape kan je altijd "display as internet explorer" doen, dan werkt het ook!
Het laatste cijfer dat ik gezien heb gaf een marktaandeel van 18% voor FireFox ...



