我正在开发一个项目,客户希望将现有页面动态加载到单个页面中。这没问题,但是当页面作为现有站点上的独立文件加载时,样式不起作用。有没有办法从每个页面中提取css链接并将其动态应用于查看器页面?
这是我写的用于将外部页面调用到查看器页面的函数的副本:
$(function() {
$('a.dock-item2').click(function() { // click on an anchor with the dock-item2 class
$("#page").remove(); // remove what's in the viewer already
var href = $(this).attr('href'); // grab the external file path and name
$('<div id="page" />').load(href, function() { // create a new div and load
// the page content
$(this).hide() // just stuff to make a nice transition...
.appendTo('#viewer')
.fadeIn(1000);
});
return false;
})});
我想将它严格应用于相关的div ......但也许这不是最好的事情。我应该考虑将这些内容加载到iframe中吗?也许只是星期五,我不能理性地思考......
提前感谢您的帮助/建议!!
答案 0 :(得分:0)
使用jQuery的ajax功能,很难/不可能从远程页面获取非身体标签(身体内不存在的标签)。话虽如此,如果是这种情况,您可以在本地设置PHP脚本充当中间人。它可以读取页面的内容,找到css文件,然后返回它,甚至返回css文件本身的内容 - 然后你可以动态地将它放在你的页面上。这应该不会太难,特别是如果你使用像phpQuery这样的东西来获取<script>
标签,甚至是PHPSimpleHTMLDOMParser,它类似于phpQuery。
所有假设,但它可能会起作用;)当然如果你只是想加载iframe,你可以。这将使所有链接在iframe内保持可用。
答案 1 :(得分:0)
不使用JavaScript。也许在php中使用fopen fwrite函数,但我当然认为这会带来很多开销。