2011-03-03 145 views
1

我已经提供了一些来自第三方供应商的代码,以便集成到我的一些网页上,这些网页使用jTemplates的jQuery插件。代码类似于此:浏览器在脚本标记中发出不需要的请求

<script type="text/html" id="item_template"> 
{#foreach $T.search.results as result} 
    {$P.fieldExists($T.result, "thumbnail", "<img src=\"[[VALUE]]\" align=\"left\" border=\"0\">")} 
{#/for} 
</script> 

我有这个问题,在某些Web浏览器,浏览器,使您可以在代码中看到的图像的请求,看起来像这样:

HTTP :// localhost/MyWebapp/[[VALUE]]

除了我认为它不应该发出请求,我不能确定这是浏览器缺陷还是代码不正确。我假设,因为内容类型是脚本标记中的text/html,浏览器将其解析为HTML。

这里的任何见解将不胜感激。

+0

HTML如何看起来像是实际生成的?该foreach在服务器上执行。哦,并将text/html更改为text/javascript - 脚本标记的唯一可接受值。 – 2011-03-03 12:44:09

+0

更正 - 我的意思是“生成的Javascript”,因为我们正在查看脚本标记的内容。无论如何,我们需要看看浏览器看到的是什么,而不是服务器模板。 – 2011-03-03 12:53:17

+0

你好,莫尔,如果我误解了你的道歉。我在问题中附加的代码是从服务器到浏览器的返回标记中的实际HTML /脚本。我认为jTemplate插件(用于Jquery)在浏览器内执行代码,Javascript在使用AJAX检索一组结果后即时生成HTML。 – Jonathan 2011-03-03 18:29:59

回答

0

是的,你是对的,文本/ html类型可能是罪魁祸首。尝试x应用程序/模板或文本/模板或类似的东西。 还要确保你有一个DOCTYPE,怪癖模式也可能在这里发挥作用。

+1

HTML脚本标记只有一种可接受的格式,那就是text/javascript ... :)另请参阅http://javascript.crockford.com/script.html然而,至少同样重要的是,他向我们展示了实际的HTML而不是服务器模板,因为问题是关于浏览器的。 – 2011-03-03 12:49:51

+0

这是不正确的。您可以使用其他值 - 如果浏览器不支持该类型,则会忽略它。在这种情况下,它特别有用,因为脚本标记不包含脚本,而是包含HTML的**模板**,它们应逐字地提供给模板库。使用不寻常的类型意味着bowser不会解析文本。 – chiborg 2011-03-04 12:36:02

相关问题