2011-08-20 66 views
0

打印元素插件完成所描述的任务。在当前页面中打印一个元素。但是,我真正需要做的是打印一个外部页面。我不想在页面上的隐藏元素中加载该页面。我想将插件指向一个外部页面。Jquery打印元素...打印外部页面

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

任何想法?

这里是我当前的代码:

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

$('#projectPrint').printElement({ 

pageTitle:lastProjectNum 

}); 
}) 

});

+0

你是什么意思'外部网页'?如果您尚未将其加载到浏览器中,则无法通过网络浏览器向打印机发送内容。 –

+0

也许我打开一个弹出窗口。所以onClick的打印按钮,我可以打开一个弹出,然后把一些代码,以自动发送该页面的打印机。如果那能行得通,我该怎么办呢? –

回答

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的内容并将其保存在变量中,例如:标题。你可以简单地打印这个变量,因为它包含你寻求的值。

+0

我很难跟随应该做什么。你能通过提供示例代码来帮助吗? –

+0

编辑我的答案看一看。请阅读jquery文档。你可以找到很多例子,如果你谷歌它。 –

+0

这不会违反跨域请求政策吗? –