html图像标记是否会在head标记中执行

时间:2010-08-12 15:57:57

标签: javascript 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>

11 个答案:

答案 0 :(得分:15)

不应该。规范说:

  

用户代理通常不会呈现   出现在HEAD中的元素   内容。

请参阅spec

但浏览器可以做任何他们想做的事。

添加了:

这是规格中的松散区域。例如,浏览器可以:

  • 渲染元素
  • 忽略元素
  • 从服务器加载图像但不渲染图像
  • 或别的什么

...浏览器符合要求。

请查看您喜爱的浏览器的功能,然后根据需要使用信息......

答案 1 :(得分:5)

是。我在FireFox和Chrome中进行了测试,并且要求它。

答案 2 :(得分:5)

这取决于浏览器。代码不正确,并且没有关于如何处理错误代码的标准,因此每个浏览器都要尝试对它进行任何理解。

我认为大多数浏览器会更改为标记汤模式,并显示它们可以做的任何内容,但有些浏览器可能会忽略该图像。

还有一个问题是错误的代码对页面的其余部分做了什么。如果浏览器更改了代码的解析方式,则可能会对正确的代码产生负面影响。

答案 3 :(得分:3)

是的,浏览器会尝试加载img资源,但原因不是很明显。

假设这是作为text / html提供的,当浏览器的解析器看到<img>元素时,它会认为它遇到了可显示的内容,只是推断出</head><body>标签(请记住,这些在HTML中是可选的,因此<img>实际上不在head元素中,而是在body元素中。

如果您使用firebug或其他方法检查DOM,例如http://software.hixie.ch/utilities/js/live-dom-viewer/,您可以亲眼看到这种情况。

由于img在正文中,因此浏览器不会将其视为与任何普通<img>元素不同。

答案 4 :(得分:2)

Web浏览器确实会加载图像。我怀疑将它放在文档的head中是因为src属性没有加载实际图像,因此它在网页本身中显示为损坏的图像。因为它在head中,所以它将被调用但不会在页面上呈现。

实际上,这就像一个异步脚本调用,因为浏览器在加载页面时会对该图像的src属性的URL执行GET请求。

答案 5 :(得分:2)

我不会设置sudo docker run --name vaultier -p 80:80 -e "VAULTIER_DOMAIN=EXAMPLE.COM" rclick/vaultier:latest而是设置width=1 height=1以防止它呈现并影响布局。

即使使用style="display:none",所有浏览器也会在标题中请求图片。

我已经检查过了:

  • MS Edge:13
  • IE:8,9,10和11
  • Safari:9和6
  • FF:25,47和49
  • 铬:51

答案 6 :(得分:1)

大多数浏览器都不关心规则,所以它会起作用。但是如果你想要符合标准,你就不应该这样做。 (至少在XHTML中,在<img>中放置<head>标记无效。)

答案 7 :(得分: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参数。

答案 8 :(得分:1)

大多数现代浏览器会将头部和身体向上移动,以在身体内留下任何可见内容。 (你可以在检查员中看到)。 它似乎非常可靠,它至少会被加载,谷歌将它用作noscript标签内的像素跟踪系统,所有这些都在头部内部(他们建议将整个代码与脚本一起放置)以防javascript不是支撑。

答案 9 :(得分:0)

我建议使用<script>标记而不是<img>标记。那么毫无疑问浏览器是否会请求该URL。请确保它不会返回任何可能导致脚本错误的内容。

答案 10 :(得分: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返回空内容,则一切正常。