Jquery打印元素...打印外部页面

时间:2011-08-20 02:50:26

标签: jquery ajax

print元素插件完成它所说的内容。在当前页面中打印元素。但是,我真正需要做的是打印外部页面。我不想在页面上的隐藏元素中加载该页面。我想将插件指向外部页面。

我实际上已经创建了一种将页面加载到隐藏元素的方法。 (下面是代码)。这工作正常,但会导致一些其他问题,我认为打印外部页面会更好。

任何想法?

这是我目前的代码:

$(".printButton").click(function(){
 $("#projectPrint").empty();
 $("#projectPrint").load('PRINT_workOrderLastEntered.php', function(){

 $('#projectPrint').printElement({

 pageTitle:lastProjectNum

 });
 })

});

1 个答案:

答案 0 :(得分:0)

您可以执行异步HTTP(Ajax)请求Click here。了解这一点。 在单击打印按钮时发出ajax请求,在成功函数内部,您可以将html文件的内容存储在变量中,然后您可以打印该变量,或者您可以直接访问需要打印的选择器,这样您就不会必须加载页面的内容。

这是一个示例,仅向用户显示ajax方法的工作原理。这将有跨域问题。但是仍然跨域,如果数据只能通过RSS获得而您无法控制其他域,那么您最好的选择是服务器端代理。

如果您可以控制其他域,则可以创建一个包含javascript函数的页面,该函数使用XmlHttpRequest来提取RSS并返回RSS。然后,您可以使用EasyXDM之类的跨域邮件库来调用该脚本。

您还可能想要检查RSS提要的网站是否支持JSONP作为替代格式,这样您就可以通过javascript获取RSS数据。但是,如果您这样做,请确保您信任该网站,因为该网站可以在您的网页内执行javascript!

我还找到了Google Feed Apis to be very usefull for cross domain

抱歉离开主题。由于用户正在调用自己的本地php文件,因此只需使用type ='GET'就不必担心跨域问题;会做。如果没有使用上述方法收到数据,请帮助!!

$.ajax({
    url: 'http://news.bbc.co.uk',
    type: 'GET',
    success: function(res) {
        var headline = $(res.responseText).find('a.tsh').text();
        alert(headline);
    }
});

我刚刚解析了一个xml ...同样你可以使用watever.php而不是bbc.co.uk而在成功函数就像我所做的那样你可以得到标题或者你想要的甚至是什么内容div并将其保存在变量中:例如:标题。您可以简单地打印此变量,因为它包含您寻找的值。