var div = document.createElement('div');
div.style.cssText = "background-image: url('http://imgs.com/mouse.png ')";
div.style.cssText
//=> "background-image: url("http://imgs.com/mouse.png\9 ");"
Der obige Code ein `\ 9` in diesem Stil-Attribut eingefügt, mit dem eine Lasche nach dem .png
Suffix zu sein, wenn entweder in Chrome oder Firefox Konsole ausgegeben die gezeigte Linie mit mit \9
beigefügten laufen an die URL. Warum das?Warum sind Browser
Ich habe gelesen, dass \9
ist eine Art von einem Hack für das Targeting nur bestimmte Versionen von IE, aber warum würden Chrome und Firefox das automatisch einfügen?
PS: Für zusätzlichen Browser Spaß, können Sie erraten, was passiert, wenn diese URL relativ ist und Sie es mit dem klassischen <a>
href Trick lösen möchten? Hier ist, was auf der fiktiven http://imgs.com
Domain passieren würde:
var a = document.createElement('a');
// Actually parsed from the above response, not assigned manually
a.href = "/mouse.png\\9 ";
a.href
//=> "http://imgs.com/mouse.png/9" (in Chrome)
//=> "http://imgs.com/mouse.png%5C9" (in Firefox)
Während also die URL mit dem Suffix \9
würde eigentlich noch arbeiten, werden die aufgelösten URLs verweisen nun auf falsche Positionen.
Das Tab-Zeichen ist auch "CTRL-I". Der Buchstabe "I" ist der neunte Buchstabe des Alphabets. '\ 9' ist ein CSS-Zeichen-Escape. – Pointy
Wenn die Konsole es tut, aber die Seite selbst löst es immer korrekt, ist es wahrscheinlich ein Fehler in der Konsole. Meine Frage ist, warum gibt es Leerzeichen in Ihrem CSS-String? Randnotiz, der '\ 9' IE-Hack wird am Ende der Eigenschaft (vor dem'; ') platziert, nicht in der Mitte eines Strings und ist entweder' \ 9' für 8-11 oder '\ 9' (das ist ein nbsp nicht eine sp, kopiere nicht Paste) für ich glaube, 5,5-8. – abluejelly
@ Pointy Das ist ... interessant. Ich meine, es ist eigentlich '\ 9', weil TAB ASCII (und in der Erweiterung UTF)' 0x09' ist, und wenn es '^ i' ist, würde es daran liegen, dass Sie Tabs für' i'ndenting verwenden ... Aber das ist ein coole Geschichte nichtsdestotrotz – abluejelly