Chcę stworzyć prosty fragment kodu JS, który tworzy element obrazu w tle i niczego nie wyświetla. Element obrazu będzie wywoływał link monitorujący (taki jak Omniture) i musi być prosty i solidny oraz działać tylko w IE 6 = <. Oto kod, który mam:
var oImg = document.createElement("img");
oImg.setAttribute('src', 'http://www.testtrackinglink.com');
oImg.setAttribute('alt', 'na');
oImg.setAttribute('height', '1px');
oImg.setAttribute('width', '1px');
document.body.appendChild(oImg);
Czy jest to najprostszy, ale najbardziej niezawodny (bezbłędny) sposób, aby to zrobić?
Nie mogę używać frameworka takiego jak jQuery. Musi być w prostym języku JavaScript.
javascript
dhtml
Pete
źródło
źródło
Odpowiedzi:
px
dotyczy tylko CSS. Użyj:aby ustawić szerokość za pomocą HTML lub:
aby ustawić go przez CSS.
Zauważ, że stare wersje IE nie tworzą właściwego obrazu z
document.createElement()
, a stare wersje KHTML nie tworzą odpowiedniego węzła DOM znew Image()
, więc jeśli chcesz być w pełni kompatybilny wstecz, użyj czegoś takiego:Zachowaj także ostrożność,
document.body.appendChild
jeśli skrypt może zostać uruchomiony w trakcie ładowania strony. Możesz skończyć z obrazem w nieoczekiwanym miejscu lub dziwnym błędem JavaScript w IE. Jeśli chcesz mieć możliwość dodania go w czasie ładowania (ale po uruchomieniu<body>
elementu), możesz spróbować wstawić go na początku treści za pomocąbody.insertBefore(body.firstChild)
.Aby zrobić to w sposób niewidoczny, ale nadal mieć obraz faktycznie ładowany we wszystkich przeglądarkach, możesz wstawić absolutnie pozycjonowane poza stroną
<div>
jako pierwsze dziecko ciała i umieścić tam wszystkie obrazy śledzące / wstępnie ładowane, których nie chcesz, aby były widoczne .źródło
new Image()
najlepiej w każdych okolicznościach?źródło
źródło
console.log
między każdą parą linii, aby dokładnie wiedzieć, która linia ją zamraża .jQuery:
Odkryłem, że działa to nawet lepiej, ponieważ nie musisz się martwić o ucieczkę z kodu HTML (co należy zrobić w powyższym kodzie, jeśli wartości nie zostały zakodowane na stałe). Jest też łatwiejszy do odczytania (z perspektywy JS):
źródło
<img ... />
do DOM, zrób to z innerHTML . Po prostu nie rozumiem: /Ze względu na kompletność sugerowałbym również użycie metody InnerHTML - chociaż nie nazwałbym tego najlepszym sposobem ...
Nawiasem mówiąc, innerHTML nie jest takie złe
źródło
Najkrótsza droga:
źródło
Czy możesz używać frameworka? jQuery i Prototype sprawiają, że tego rodzaju rzeczy są całkiem proste. Oto przykład w Prototype:
źródło
możesz po prostu zrobić:
Prosty :)
źródło
Wystarczy dodać pełny przykład JS w HTML
źródło
Jak wskazywali inni, jeśli możesz używać frameworka takiego jak jQuery, najlepiej będzie go użyć, ponieważ prawdopodobnie zrobi to w najlepszy możliwy sposób. Jeśli nie możesz używać frameworka, to chyba najlepszym sposobem na zrobienie tego jest manipulowanie DOMem (i moim zdaniem właściwy sposób).
źródło
Jest to metoda, którą stosuję, aby utworzyć pętlę tagów img lub pojedynczy tag zgodnie z twoim życzeniem
lub
źródło