Czy nie można używać elementów HTML w atrybucie title?
Powyższy screengrab pochodzi z przeglądarki Firefox. Kursor przesuwa się nad żółtym punktem po lewej stronie obrazu. Jest to element <img>
(właściwie to jest to obraz wraz z mapą obrazów zawierającą pojedynczy okrągły element <area>
, ale zakładam, że to rozróżnienie jest nieistotne), który został utworzony i napisany w JavaScript, w tym zastosowanie atrybutu title (skonstruowanego przez struny do cięcia i klejenia). Jak mogę to zachować i pokazać zamierzoną postać, zamiast niej, zamiast –
? Działa dla innerHTML (tekst "Barrow-In-Furness" w górnym środku po lewej stronie to div, który został również utworzony za pomocą JavaScriptu i jego zestawu innerHTML).
Edytuj: W odpowiedzi na pytanie Domenica: tutaj jest to funkcja JavaScript, który tworzy i stosuje atrybut tytułowy (oprócz wykonywania innych zadań):
var StyleLinkMarker = function (LinkNumber, EltA, EltI) {
var AltText = LocationName[LinkStart[LinkNumber]] +
" to " +
LocationName[LinkEnd[LinkNumber]];
if (!EltA) {
EltA = document.getElementById("link_marker_area" + LinkNumber);
EltI = document.getElementById("link_marker_img" + LinkNumber);
}
if (LinkStatus[LinkNumber] === 9) {
var CanBuyLinkCode = BoardPreviewMode ? 0 : CanBuyLink(LinkNumber);
if (CanBuyLinkCode === 0) {
EltI.src = ImagePath + "icon-buylink-yes.png";
AltText += " (you can buy this " + LinkAltTextDescription + ")";
} else {
EltI.src = ImagePath + "icon-buylink-no.png";
AltText += " (you cannot buy this " + LinkAltTextDescription;
AltText += CanBuyLinkCode === 1 ?
", because you aren't connected to it)" :
", because you would have to buy coal from the Demand Track, and you can't afford to do that)";
}
} else if (LinkStatus[LinkNumber] === 8 ||
(LinkStatus[LinkNumber] >= 0 && LinkStatus[LinkNumber] <= 4)
) {
EltI.src = ImagePath + "i" + LinkStatus[LinkNumber] + ".png";
if (LinkStatus[LinkNumber] === 8) {
AltText += " (orphan " + LinkAltTextDescription + ")";
} else {
AltText += " (" +
LinkAltTextDescription +
" owned by " +
PersonReference(LinkStatus[LinkNumber]) +
")";
}
} else {
throw "Unexpected Link Status";
}
EltA.alt = AltText;
EltA.title = AltText;
};
LocationName
się następująco:
var LocationName = [
"Barrow–In–Furness", "Birkenhead", "Blackburn", "Blackpool",
"Bolton", "Burnley", "Bury", "Colne",
"Ellesmere Port", "Fleetwood", "Lancaster", "Liverpool",
"Macclesfield", "Manchester", "The Midlands", "Northwich",
"Oldham", "Preston", "Rochdale", "Scotland",
"Southport", "Stockport", "Warrington & Runcorn", "Wigan",
"Yorkshire"
];
Czy jesteś pewien, że '–' nie jest kodowana dwukrotnie jak : '& ndash;' – Mark
W jaki sposób ustawiasz atrybut title? Następujące działa dobrze: ' sprawdź mnie' – Domenic
@ Mark: Jestem przekonany, że nie jest on podwójnie zakodowany. W szczególności, jeśli byłby on podwójnie zakodowany, powinienem oczekiwać odważnego tekstu Verdany w górnej środkowej lewej części obrazu, aby wyświetlał jednostkę HTML dosłownie, zamiast wyświetlać poprawnie zamierzoną postać. Dzieje się tak dlatego, że zawartość div jest tworzona z tego samego ciągu JavaScript. – Hammerite