如果在没有任何参数的情况下调用CSS中的url()
函数,它是否会向页面的URL发送请求?
我正在构建一个有角度的应用程序,我在我的部分中有以下相当天真的代码:
<div style="background-image: url({{scope.image_url}});">
{{scope.message_text}}
</div>
当应用程序加载时,我注意到我的页面的URL被调用,导致我的服务器端处理程序错误地触发了一些分析事件。
根据我的观察,我在Chrome&amp; Firefox浏览器。但是,当没有传递参数时,我无法找到任何说明url()
函数行为的文档。
如果这是正确的行为或我遗失了什么,请告诉我。
答案 0 :(得分:1)
如by W3所述,url()函数需要一个字符串作为参数。在您的情况下,$scope.image_url
已解析为空字符串,这是合法的Relative URL,因此浏览器会尝试将其解析为完整的网址,在您的情况下为base_url + ''
。
您可以通过更改$scope.image_url = '1'
来验证,然后您可以看到http://yourdomain/1的一个请求。
为了防止这种情况,我建议您创建一个fallback
指令,以便在没有此记录的图像时显示默认图像,有关详细信息,请参阅this stackoverflow answer
答案 1 :(得分:0)
我认为他将您的空绑定解析为url(undefined)
..所以他会尝试解析网址http://<domain>/path/to/your/page/undefined
。
您是否在页面加载时初始化scope.image_url
?
为了防止这种情况,我建议绑定整个样式属性,而不仅仅是url()
...如果没有&#34;空&#34; url()
,我认为它不会加载随机请求...或者如果背景只是静态的,请使用CSS类而不是style
属性...