在jquery里面动态通过AJAX获取一个完整的页面内容,并将其放入一个div中,页面中其它内容可以显示,但CSS的效果确没有被执行出来。
dh.find('.dialog-content').html(content)
content即为我请求回的页面内容,不知道是否有人和我一样碰到过类似的问题(印象中使用extjs里面的panel.load()也碰到过类似的情况,但时好时坏,一直不知道什么造成该问题的原因和其解决方案,希望大家能帮忙解答一下)
问题补充:
简言之,我想DIV能达到iframe的效果,但CSS这关好像又通过不了
你的CSS是包含在ajax的响应请求里面的吗?你返回的是一个完整的HTML页面,包含
、这样的吗?如果是的话,直接放到一个DIV里面是错误的。就算内容可以显示也只是浏览器的兼容性做得比较好。要把里面的CSS给添加到当前页面的话,不应该采用这种做法。你需要的是在当前页面添加标签去动态加载这个CSS文件。Ajax请求应该只返回少量的数据。
DIV是DIV,如果你想把它当成iframe来用,感觉不是很好。
如果你想的话,就需要对返回的内容进行处理。把返回的HTML文档中
里面的标签取出来,放到父页面里面;同时把元素的子节点作为div的子节点添加进来。楼上说的是对的
只要楼主把加载的内容写对了,不管是直接写入的css还是另外动态增加的link style,都是可以正确显示的。
给你一个我以前写的很不成熟的例子
http://czzsy.com/
里面的内容包括css文件都是动态写入DOM的,用firebug监视一下网络,就知道了,这是完全可行的
可能是css加载的问题吧,首先你的路径一定要保证是正确