這是有點不清楚你想達到什麼。然而,它看起來像你試圖從一個沒有的區域獲取字體。非破壞空間(
)位於字體標記(<FONT> . . . </FONT>
)之外,因此沒有該標記的屬性(面或大小)。如果非破壞空間位於字體標籤內,則可以獲得其面部。
這是一個fiddle說明。爲了看到一些東西,我用Hello
替換了 
。
HTML:
<!-- Hello is outside the font tag. -->
<P><FONT size=5 face="Courier New"></FONT>Hello</P>
<!-- Hello is inside the font tag. -->
<p><font size=5 face="Times New Roman">Hello</font><p>
的Javascript:
// Alert the face
function handleFonts(e) {
alert(this.face);
}
// Get all the font elements
var el = document.querySelectorAll("font");
// Bind event handlers to the elements
// The last element of "el" is it's length so we only
// iterate to el.length - 1 or i < el.length
for (var i = 0; i < el.length; i++) {
el[i].addEventListener("click", handleFonts, true);
el[i].addEventListener("keypress", handleFonts, true);
}
點擊在第一段落標記文本觸發什麼。點擊第二個工作正常的文字。
我們可以解決這個問題,雖然有一點額外的JavaScript。
對於像第一個標記和下面的Javascript那樣的HTML,我們可以在包含 
的標記內獲得字體的面部,即使 
不在該字體標記內。
HTML:
<p id="last-p-tag"><font size=5 face="Tahoma"></font>Hello</p>
的Javascript:
// Get the paragraph tag we want
var lastPTag = document.getElementById("last-p-tag");
// Bind an event to clicking on it
lastPTag.addEventListener("click", function(e) {
// Alert the face attribute of the first font element
// within that p tag
alert(this.querySelector("font").face);
}, true);
這包括在小提琴的結束。