2010-08-12 182 views
10

因此,一家領先的跟蹤公司需要一個鏈接來觸發它,並將其放在標籤中......它會被觸發。在head標籤中是否會執行html圖片標籤

<head> 
    <img width=1 height=1 src='http://track.searchignite.com/si/CM/Tracking/TransactionTracking.aspx?siclientid=4426&DetailDescription=935626&transactionamount=1&SICustTransType=19172&jscript=0&x10=goog&x9=1&x8=935626&x7=777+665-9999&x6=jones&x5=matt&x4=&x3=Camarillo&x2=Oxnard%2C+CA+Metro+Area&x1=Hidden+Springs&n1=Austin--Bedroom--austin_1_bedroom_apartments-P'> 
</head> 
+2

只是爲了精確... HTML不執行,它被解釋。 – nico 2010-08-12 16:19:26

回答

13

它不應該。細則中指出:

用戶代理通常不會呈現出現在HEAD作爲 內容 元素。

spec

但瀏覽器可以做他們想做的任何事情。

加:

這是規範中的一個鬆散區域。例如,瀏覽器可以:

  • 渲染元素
  • 忽略元件從其服務器
  • 加載圖像,但它沒有被渲染
  • 還是其他什麼東西

...和瀏覽器將符合標準。

那麼看看你最喜歡做的瀏覽器,然後按照您的意願使用信息...

5

是的。我在FireFox和Chrome中進行了測試,並被要求提供。

+2

注意:Hacky hacky hacky – meawoppl 2015-06-10 19:57:47

2

Web瀏覽器確實將加載圖像。我懷疑它在文檔的head中的位置是因爲src屬性不會加載實際圖像,所以它會在網頁中顯示爲破碎的圖像。由於它在head中,因此它將被調用,但不會在頁面上呈現。

實際上,這就像一個異步腳本調用,因爲瀏覽器將在加載頁面時爲該圖像的src屬性的URL執行GET請求。

5

這將取決於瀏覽器。代碼是不正確的,並且如何處理不正確的代碼沒有標準,所以每個瀏覽器都要試着去理解它。

我認爲大多數瀏覽器會改變爲標籤湯模式,並顯示他們可以做的任何事情,但有些瀏覽器可能會忽略該圖像。

還有一件事,不正確的代碼對頁面的其餘部分做了什麼。如果瀏覽器更改了代碼的解析方式,則可能會對代碼的正確性產生負面影響。

1

大多數瀏覽器不打擾規則,所以它會工作。但是如果你想成爲符合標準的,你不應該這樣做。 (至少在XHTML中,將<img>標記放置在<head>內是無效的。)

1

從技術上講,是的,但它更好地放在HTML/JS調用中。

HTML

<body onload="triggerLink('4426');"> 

JAVASCRIPT

function triggerLink(var1){ 
    var receiveReq = getXmlHttpRequestObjectShipping(); 
    var url= 'http://track.searchignite.com/si/CM/Tracking/TransactionTracking.aspx?siclientid=' + var1; 

    if (receiveReq.readyState == 4 || receiveReq.readyState == 0) { 
     receiveReq.open("POST", url, true); 
     receiveReq.onreadystatechange = handleLink; 
     receiveReq.send(null); 
    } 
} 
function handleLink(){ 
    //Do This when request finished 
} 

您可以添加變量的 「tiggerLink」 功能,以及通過您的URL參數的其餘部分。

0

我建議使用<script>標記而不是<img>標記。那麼瀏覽器是否會請求這個url是沒有問題的。只要確保它不會返回任何可能導致腳本錯誤的東西。

+1

但是你想用JS跟蹤用戶 – 2017-03-10 16:53:32

0

我會更傾向於使用link並指定爲樣式表:

<link rel="stylesheet" type="text/css" src="http://track.searchignite.com/si/CM/Tracking/TransactionTracking.aspx?siclientid=4426&DetailDescription=935626&transactionamount=1&SICustTransType=19172&jscript=0&x10=goog&x9=1&x8=935626&x7=777+665-9999&x6=jones&x5=matt&x4=&x3=Camarillo&x2=Oxnard%2C+CA+Metro+Area&x1=Hidden+Springs&n1=Austin--Bedroom--austin_1_bedroom_apartments-P">

所有的應該是確定的,如果TransactionTracking.aspx返回空內容。

2

是的,瀏覽器會嘗試加載img資源,但由於原因不明顯。

假設這是爲text/HTML,當瀏覽器的解析器看到<img>元素會認爲它遇到了可顯示的內容,只是推斷</head><body>標籤(請記住,這些是HTML的可選項),所以<img>實際上並不在頭部元素中,而是在身體元素中。

如果您使用螢火蟲或其他檢查DOM的方式(如http://software.hixie.ch/utilities/js/live-dom-viewer/),您可以親自看到是這種情況。

由於img在正文中,因此瀏覽器不會將其視爲與任何正常的<img>元素不同。

0

大多數現代瀏覽器會將頭部和身體向上移動以在身體內留下任何可見內容。 (你可以在檢查員看到)。 它看起來非常可靠,它至少會被加載,Google將它用作一個無腳本標記內的像素跟蹤系統,所有內部頭部(他們建議放置整個代碼以及腳本)以防javascript不支持。

0

而不是設置width=1 height=1我會設置style="display:none"以防止渲染並影響佈局。

即使使用display:none,所有瀏覽器都將請求標題中的圖像。

我已經檢查它:

  • MS邊:13
  • IE:8,9,10和11
  • 的Safari:9和6
  • FF:25,47和49
  • 鉻:51