2011-08-22 68 views
2

确定打印网页,让使用情况如下:我得到“访问被拒绝”当我尝试使用jquery.PrintElement.js

我有打开的当前页面使用jQuery打印按钮打印插件。

$("#Section1").printElement({ 
     leaveOpen: true, 
     printMode: 'popup', 
     pageTitle: '<%=Resources.Reporting.Text_Title%>' 
    }); 

结果是我所期望的。显示打印预览窗口和打印设置对话框。

如果我点击一个更多的时间和打印预览页面最小化,我收到“访问被拒绝”指着JQuery.printElement.js JS错误。

如果不是最小化,它只是打开与以前相同的打印预览弹出窗口。

这就是IE的行为。在Firefox中,浏览器发出“不可用”警报。

这是我能解决的问题吗?

从我到目前为止搜索这个“访问被拒绝错误”链接到 从不同的域”

+0

什么是JQuery.printElement.js? – epascarello

+0

对于您正在尝试打印的元素,有没有什么不寻常的事情,比如它在iframe中?或者它只是一个普通的分区?似乎有很多人发现这个图书馆的小错误。如果你在这里没有运气,我会建议去[这里](https://github.com/erikzaadi/jQueryPlugins/issues?labels=printElement)并打开一个问题。 –

+0

尝试将printElement升级到[更新版本](https://github.com/Akkuma/jQueryPlugins/blob/master/jQuery.printElement/jquery.printElement.js)。另外,我建议使用'printMode:iframe'。 –

回答

1

感谢名单Blowsie使一个子域的呼叫,可能会给一个去。

问题出在这样的事实,即打印插件试图打开一个新窗口,每次按下打印页面按钮时都会打开一个名称相同的新窗口,我改变它以便每次使用新的唯一名称时打印预览页面打开。

if (opts["printMode"].toLowerCase() == 'popup') { 
     popupOrIframe = window.open('about:blank', 'printElementWindow', 'width=650,height=440,scrollbars=yes'); 
     documentToWriteTo = popupOrIframe.document; 
    } 

发送至:

var windowName = "printElementWindow"; 
    windowName = windowName + (Math.round(Math.random() * 99999)).toString(); 
    if (opts["printMode"].toLowerCase() == 'popup') { 
     popupOrIframe = window.open('about:blank', windowName, 'width=650,height=440,scrollbars=yes'); 
     documentToWriteTo = popupOrIframe.document; 
    } 
相关问题