我正在使用Google Maps API和ASP.NET Ajax开发网络应用程序。这是我的PageLoad的JavaScript代码:
map.openInfoWindowHtml(map.getCenter(),'Hello, <b>world</b>!');
首次运行成功。但是在执行一些ASP.NET Ajax函数之后我们产生了奇怪的效果:在Internet Explorer中,Mozilla Firefox和Opera一切都很好,但在谷歌Chrome和Safari中,带有html标签的文本是不可见的。换句话说,在谷歌浏览器中我们有文字:“你好,!”
我想制作通常在Google Chrome和Safari中使用的应用程序。我该怎么做?
更新
字符串"Hello, <b>world</b>, <strong>world</strong>, <span style='font-weight: bold;'>World</span>, <a href='http://ya.ru'>Link</a>."
转换为"Hello, , , , . "
(我检查了DOM)。言语真的在消失。
我在任何 Ajax函数上观察到这种奇怪的效果,并向服务器发出请求。
UPDATE2:
非常感谢Koobz提出的许多重要问题。他们帮助我更详细地了解了这个问题。
首先,完整描述行动:
一个有趣的事实,让我感到尴尬:
我尝试设置为“Hello,&lt; b&gt; world&lt; / b&gt ;,&amp; lt; b&amp; gt; test&amp; lt; / b&amp; gt;”
在所有浏览器中使用Ajax之前,我有:“你好,世界,&lt; b&gt; test&lt; / b&gt;”
Google Chrome和Safari中的Ajax功能之后:“您好,测试”
在Mozilla,Opera和IE中执行Ajax功能之后:“Hello, world ,&lt; b&gt; test&lt; / b&gt;”
哪些Chrome和Safari具有可能导致此类行为的功能?现在我可以为每个浏览器单独编写必要的infoWindow-text。但我想找到解决问题的正常方法。
答案 0 :(得分:3)
点击ctrl + shift + j打开你的chrome开发者工具。
它可以是任何数量的东西。我不知道你在做什么样的Ajax。您是在执行请求后动态更新页面上的内容吗?此更新代码可能正在修改它不应该的dom元素。如果是这种情况,追踪使用上述方法将有助于确定它。
如果您正在使用jQuery,那么您的某个选择器可能会出现问题并且正在消耗内容。 Chrome是非常好的,我很犹豫相信这是一个javascript错误或类似的东西。
验证您的HTML。如果你正在遍历dom,无效的标记可能会导致chrome“看到”与其他浏览器不同的图片。只需查找损坏的标签并忽略验证器所抱怨的所有其他内容。
狂野猜测:但它剥离HTML的方式可能指向某种XSS保护。 Ajax脚本是否在访问者正在查看的域之外的其他域上返回新的HTML代码?
这里的一些信息: http://groups.google.com/group/chromium-dev/browse_thread/thread/d2931d7b670a1722/d56bdfccfcef677f
答案 1 :(得分:2)
您是否在信息窗口中看到了任何html标签的问题?作为实验,请尝试:
<span style="font-weight: bold;">World</span>.
我想知道DOM中某处是否有未封闭的粗体标记?
我messing around有这个问题,但我无法重现它。看看Ajax函数的作用会有所帮助。
答案 2 :(得分:1)
试试这个:
map.openInfoWindowHtml(map.getCenter(),'Hello, <strong>world</strong>!');
强标签更符合标准,值得一试
正如其他人所说,你需要发布你的代码。