Automatisch hinzugefügte xmlns-Attribute entfernen
Ich versuche eine einfache Such- und Hervorhebungsfunktion in auszuführenJavascript
das sucht nach einem Stück Text. DasXHTML
Das Tag, mit dem dieses Textstück vorkommt, wird auch als Argument für zusätzliche Hilfe beim Auffinden dieses Textes angegeben.
Das XHTML, auf dem ich diese Funktion teste:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta content="application/xml+xhtml;charset=UTF-8" />
<script src="searcher.js" type="text/javascript"></script>
<script src="jquery-2.0.2.min.js"> </script>
<title>Building your resume</title>
</head>
<body id="highlightbegin">
<h1>Building your resume</h1>
<div> <input name="input" type="button" value="Highlight3" onclick="javascript:searcher('<h1>','Building your resume', '<h1>Building your resume', 'resume');" /> </div>
</body>
</html>
Der Funktionssucher in searcher.js:
function searcher(tag, text, tagText, word) {
//simple search.
console.info(word + " to be searched for in " + text + " with tag text = " + tagText);
//get old html.
var oldHTML = document.getElementById("highlightbegin").innerHTML;
//get regexp.
var regexp = new RegExp(tagText, 'g');
var match = oldHTML.match(regexp);
console.info(text + " found " + match.length + " times.");
}
Das Ausführen derRegExp
, Match kehrt zurücknull
. Weitere Untersuchungen ergeben, dass das Tag<h1>Building your resume</h1>
wird<h1 xmlns="http://www.w3.org/1999/xhtml">Building your resume</h1>
was bewirkt, dass diematch
Funktion, um zurückzukehrennull
. Meine Fragen:
xmlns
Attribut automatisch hinzugefügt?Gibt es eine Möglichkeit, das Hinzufügen des Attributs zu verhindern?Welchen Tags wird dieses Attribut hinzugefügt? Ist es sicher anzunehmen, dass es zu jedem Tag hinzugefügt wird?Handelt es sich um ein browserspezifisches Problem oder ist dieses Verhalten in allen Browsern zu erwarten?BEARBEITEN:
Eine Beobachtung:
1. Wenn ich das hinzufügexmlns
Attribut auf diebody
taggen und auf alle Inhalte zugreifen mitouterHTML
(var oldHTML = document.getElementById("highlightbegin").outerHTML;
), haben seine untergeordneten Elemente nicht diexmlns
Attribut.
Meine Fragen:
1. Kann das OuterHTML Element bearbeitet werden (mitJavascript
) und ersetzt?
2. Ist die obige Beobachtung konsistent (jedes Mal gesehen)?outerHTML
wird aufgerufen) oder ist es implementierungsabhängig?
3. Ist es das?Javascript
das fügt diexmlns
Attribut automatisch oder der Browser?