我正在使用maxminds geoip脚本而我正在使用
<script>document.write( geoip_city() );</script>
显示用户本地城市。对我来说,这将是New York
。我通常对此脚本没有任何问题,但当我将其包含在我的fancybox模式中时,页面仅以黑色文本显示“纽约”,页面的其余部分完全空白。
我的问题是如何获得价值
<script>document.write( geoip_city() );</script>
而不是将其直接粘贴到fancybox模式中,如何将New York
的值打印到div(例如
<div class="userscity"></div>
那样在div / class发布的网站上哪里会发布用户城市?
答案 0 :(得分:0)
让我们从代码开始,然后我会给出解释:
<script>
var geoipOutput = geoip_city();
var element = document.querySelector(".userscity");
element.innerHTML = geoipOutput;
</script>
您的javascript始终必须位于<script>
标记中。你现在拥有它的方式,你只是将整个文档重写为geoip_city()
函数的结果。
相反,我创建了一个名为geoipOutput的变量。我不知道你的geoip_city()
电话是什么,所以这可以让你保存输出并根据需要进行调整。或者你可以检查它是否等于“纽约”,如果没有则表现不同,或做任何其他想到的事情。
接下来,我找到了你想要的课程的div。请注意,根据MDN,这将返回与该选择器匹配的第一个 div。如果有多个,您可以使用document.querySelectorAll
并循环答案。
最后,我设置了div的innerHTML属性。这应该以你想要的方式显示它。
答案 1 :(得分:0)
geoip_city()
函数返回一个值,在您的情况下是“纽约”。目前,您将该值发送到document_write()
函数,该函数将“New York”写入文档的末尾。
要将该值写入特定div,您将执行以下操作:
<script>
var city = geoip_city();
var div = document.querySelector(".usercity");
div.innerText = city;
</script>
首先,获取geoip_city()
的值。
然后,找到要放入的元素。 querySelector
使用CSS样式选择器来查找元素。
最后,将值赋给div的innerText属性。
如果您希望“纽约”与其他文本内联,请使用跨度而不是div来捕获值。