2010-04-15 55 views
1

我试图让这个内容加载器工作,我设法让它得到新的内容,一旦内容加载它不正确的样式。此外,字符“é”成为问号。 Doctype问题?以及通常应用Cufon的h2标签不会触发。jQuery - 将内容加载到div中,样式不适用?

所以基本上,这个内容加载器要求我有一堆页面基本上是相同的,除了我想要retreice的内容。这样,用户就可以使用实际的URL,就像您通常执行的那样。只有在已经加载的页面上点击链接时,只有#realtent div中的内容才被替换。

我可以在这里发布代码,但我认为最好只是在测试页面上观看它。这是对显卡非常低的BTW)

http://www.matkalenderen.no

只需点击蓝色的文字链接,你会看到它。另外,第二个加载的内容上的红色按钮应该将内容还原为之前的内容。但它没有被触发或什么。发生了什么?

回答

2

因为new_user.php是ISO-8859-1文件。

XMLHttpRequest,用于提取页面,默认为UTF-8。由于XMLHttpRequest不知道HTML,它将忽略用于声明该编码的<meta>标记,并继续使用UTF-8,导致无法读取编码为单个非UTF-8字节的é

您应该让您的脚本发回一个真正的header('Content-Type: text/html; charset=ISO-8859-1');,这两个浏览器的HTML解析器XMLHttpRequest能理解,或者 - 可能会更好 - 只使用UTF-8为整个网站。然后你可以来回发送任何Unicode字符,而不仅仅是来自Latin-1的一些重音字母。

造型对我来说很好。我能看到的唯一区别是新加载的内容缺少字体替换。发生这种情况是因为字体替换内容仅在页面加载时运行。加载新页面后,您可以在新标题上再次进行替换,或者考虑@font-face嵌入,您可以拨打Cufon.replace('h2');,这正开始接管这种事情。

+0

嗯,是否有任何可能性,我可以只是调用Cufon.now()作为整个内容fetcher例程的一部分?这不仅仅是将Cufon.now()添加到执行fetchin的js部分一样简单吗?这些功能可以在js中相互调用吗?不太熟悉js的说实话。 – 2010-04-15 21:23:32

+0

但是,请注意,点击第一个链接“注册表编辑器”后,点击新加载的红色按钮不会执行任何动画来替换内容。这只是一个普通的旧href链接。它应该做同样的事情,淡出现有的内容,然后加载新的内容。 – 2010-04-15 21:26:08

+1

嗯,是的,这是因为你没有绑定任何脚本行为的按钮。控制该行为的'

1

您没有doctype问题,您有character encoding问题。

+0

是,请检查此链接http://www.joelonsoftware.com/articles/Unicode.html – 2010-04-15 20:56:59

+0

是的,UTF-8或死亡! – 2010-04-15 20:58:40

+0

其实,改用utf-8并没有改变任何东西。我错过了什么吗? – 2010-04-15 21:30:45