selection.empty() ergibt "unbekannter Laufzeitfehler"
Andreas Nagel
- javascript
Hallo zusammen
auf meiner Seite sollen Daten zum rauskopieren angezeigt werden:
function ShowDaten(Link)
{
top.document.getElementById("Informationen").style.left = top.X + top.document.getElementById("SideBar").offsetLeft + top.document.getElementById("Bereich").offsetLeft + 10 + "px"
top.document.getElementById("Informationen").style.top = top.Y + top.document.getElementById("DatenBereich").offsetTop + top.KennungHeight + 50 + "px"
top.document.getElementById("Informationen").innerHTML = Link.getAttribute("Daten")
top.document.getElementById("Informationen").style.visibility = "visible"
top.document.getElementById("Informationen").focus()
top.document.selection.empty()
}
Diese Funktion wird per Javascript zugewiesen:
function AnzeigenZuweisen()
{
var a = 0
var p = 0
var Pos = 0
var b = 0
for (var i = 0; i < document.getElementsByTagName("a").length; i++)
{
var l = document.getElementsByTagName("a")[i];
l.a = a;
if (l.onclick == undefined && l.getAttribute("Daten") == undefined)
{
l.onclick = function(e) {
top.ActiveLink = this;
}
}
if (l.onclick == undefined && l.getAttribute("Daten") != "")
{
l.onclick = function(e) {
top.ActiveLink = this;
ShowDaten(this);
}
}
if (l.onmouseover)
{
l.onmouseover = function(e) {
BildTimeOut = window.setTimeout("ShowPicture(" + this.a + ")", 1000);
}
l.onmouseout = function(e) {
window.clearTimeout(BildTimeOut);
HidePicture(this.a);
}
a++
}
}
}
Und das funktioniert auch fehlerfrei beim öffnen von Links auf html Seiten. Doch wenn ich zuerst einen Link aufrufe der mit php erstellt wurde, dann kommt die o.g. Fehlermeldung im IE was sich auf die Zeile top.document.selection.empty() bezieht.
Das ist jetzt wohl etwas zu weit her gebracht und damit schwer nachvollziehbar, Wäre aber genial Hilfe zu bekommen und dafür mich ich mich schon jetzt bedanken.
mfg. Andreas
Lieber Andreas,
die o.g. Fehlermeldung im IE was sich auf die Zeile top.document.selection.empty() bezieht.
IE kennt kein document.selection
-Objekt.
Liebe Grüße,
Felix Riesterer.
Hallo Felix Riesterer und danke
jedoch ist es möglich wenn ich die Funktion ShowDaten() aus einem Link heraus aufrufe bevor ich nicht einen Link geöffnet hatte per php erstellt wurde.
selection.empty() ist dafür notwenig das wenn in dem div Text ausgewählt wurde, dass beim nächsten anzeigen nichts mehr ausgewählt ist.
Wie schaffe ich es sonst?
Jetzt würde ich mich stark freuen dazu eine Lösung zu bekommen, und ich bedanke mich dafür jetzt im Voraus.
Gruß Andreas
Lieber Andreas,
IE kennt kein
document.selection
-Objekt.jedoch ist es möglich wenn ich die Funktion ShowDaten() aus einem Link heraus aufrufe bevor ich nicht einen Link geöffnet hatte per php erstellt wurde.
was genau willst Du mir damit sagen? Dieser (Halb-)Satz ergibt für mich unter technischen (und inhaltlichen) Aspekten kaum bis gar keinen Sinn.
Liebe Grüße,
Felix Riesterer.
IE kennt kein
document.selection
-Objekt.
Selbstverständlich kennt er das, und wenn du dort aufmerksam schaust, dann wirst du es in der Liste auch verlinkt finden (unten bei »Objects«).
http://msdn.microsoft.com/en-us/library/ms535869(VS.85).aspx
»Applies To: document, HTMLDocument Constructor«
Und eine empty-Methode gibt es auch:
http://msdn.microsoft.com/en-us/library/ms536418(v=VS.85).aspx
M.
Lieber molily,
ich muss echt blind gewesen sein. Dann nehme ich alles zurück und behaupte ab sofort das Gegenteil.
Liebe Grüße,
Felix Riesterer.
'ǝɯɐu$ ıɥ
Und das funktioniert auch fehlerfrei beim öffnen von Links auf html Seiten. Doch wenn ich zuerst einen Link aufrufe der mit php erstellt wurde, dann kommt die o.g. Fehlermeldung im IE was sich auf die Zeile top.document.selection.empty() bezieht.
Und in allen anderen Browsern funktioniert es?
ssnɹƃ
ʍopɐɥs
Hallo Shadowcrow
ich probierte es ehrlich gesagt erst jetzt mal im Firefox mit Obacht auf die Fehlerkonsole. Und auch hier kommt jetzt die Fehlermeldung
top.document.selection.empty() is undefined
Und das muß weg. Aber schon mal im Voraus, mehr als Code schreiben kann ich nicht, denn es gibt diese Seite nicht im Netz.
Danke gruß Andreas
'ǝɯɐu$ ıɥ
top.document.selection.empty() is undefined
Und das muß weg. Aber schon mal im Voraus, mehr als Code schreiben kann ich nicht, denn es gibt diese Seite nicht im Netz.
Kann das die über PHP generierten Links irgendwie fehlerhaft sind?
ssnɹƃ
ʍopɐɥs
Hallo Shadow,
Und das muß weg. Aber schon mal im Voraus, mehr als Code schreiben kann ich nicht, denn es gibt diese Seite nicht im Netz.
Kann das die über PHP generierten Links irgendwie fehlerhaft sind?
ich schenke Dir ein "sein", ein Komma und ein "dass" :-)
Freundliche Grüße
Vinzenz
'ǝɯɐu$ ıɥ
Kann das die über PHP generierten Links irgendwie fehlerhaft sind?
ich schenke Dir ein "sein", ein Komma und ein "dass" :-)
Danke, du bist so gut zu mir :-).
ssnɹƃ
ʍopɐɥs
Hi,
Aber schon mal im Voraus, mehr als Code schreiben kann ich nicht, denn es gibt diese Seite nicht im Netz.
Das kannst du ja ändern.
Zitat #1632
MfG ChrisB
ich probierte es ehrlich gesagt erst jetzt mal im Firefox mit Obacht auf die Fehlerkonsole. Und auch hier kommt jetzt die Fehlermeldung
top.document.selection.empty() is undefined
document.selection ist ein IE-Spezifikum, in anderen Browsern geht es mit window.getSelection().removeAllRanges(). Per Feature-Abfragen kann man einfach browserübergreifend programmieren, z.B.:
if (document.selection && document.selection.empty) {
document.selection.empty();
} else if (window.getSelection) {
var sel = window.getSelection();
if (sel.removeAllRanges) {
sel.removeAllRanges();
}
}
Warum der IE in deinem Fall beim empty-Aufruf eine Exception wirft, das müsste man am konkreten Code untersuchen.
mehr als Code schreiben kann ich nicht, denn es gibt diese Seite nicht im Netz.
Dann lade sie doch irgendwo kurzfristig hoch oder nutze Sites wie http://jsfiddle.net/.
Mathias
Hallo molily
Vielen Dank! Es fehlte wohl die Frage ob denn überhaupt was selektiert ist, so meine Interpretation. Denn verwende ich die if then
if (document.selection && document.selection.empty)
{
document.selection.empty();
}
dann funktionierts einwandfrei unter Firefox und IE und also jetzt wieder alles sauber.
Nochmals Vielen Dank Gruß Andreas