我正在尝试修改一个站点,该站点使用“Morten 的 JavaScript 树形菜单”在使用 Adobe Reader 插件的框架集中显示 PDF。
在 iPad 上,框架没用,所以我想在新选项卡中打开 PDF。不想弄乱树形菜单,我想我可以在查看器框架中打开的网页中使用 JavaScript 来打开带有 PDF 的新选项卡。
我在 $(document).ready(function() 中使用 window.open() 在新选项卡中打开 pdf。问题是 window.open() 不想在 iPad 上工作。
HTML 的正文通常看起来像这样......
<body>
<object data="MypdfFileName.pdf#toolbar=1&navpanes=1&scrollbar=0&page=1&view=FitH"
type="application/pdf"
width="100%"
height="100%">
</object>
</body>
我将其更改为只有这样的 div ...
<body>
<div class="myviewer" ></div>
</body>
然后使用以下脚本...
$(document).ready(function() {
var isMobile = {
Android : function() {
return navigator.userAgent.match(/Android/i) ? true : false;
},
BlackBerry : function() {
return navigator.userAgent.match(/BlackBerry/i) ? true : false;
},
iOS : function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
},
Windows : function() {
return navigator.userAgent.match(/IEMobile/i) ? true : false;
},
any : function() {
return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Windows());
}
};
if(isMobile.any()) {
var file = "MypdfFileName.pdf";
window.open(file);
}else {
var markup = "<object data='MypdfFileName.pdf#toolbar=1&navpanes=1&scrollbar=0&page=1&view=FitH' type='application/pdf' width='100%' height='100%'></object>";
$('.myviewer').append(markup);
};
});
除了 iPad 上的 window.open() 之外,一切都有效。如果我在 widow.open() 周围进行切换,则可以在计算机上正常工作。在另一个项目中,我通过 onclick 函数在 iPad 上成功使用了 window.open()。
我尝试使用计时器功能。我还尝试将 onclick 函数添加到 div 并发布点击事件。在这两种情况下,他们都在电脑上工作,而不是 iPad。我难住了。
我知道在树形菜单框架中处理 ipad 会更有意义,但是该代码太复杂了,我无法弄清楚在哪里放置/修改 onclick 事件。
有没有办法更改对象以使其在新选项卡中打开?
是否有人对 Mortens Tree 菜单代码足够熟悉,可以告诉我如何更改点击事件,以便它在新选项卡中打开 pdf 而不是在框架中打开页面?
谢谢