javascript - 使用 jQuery 在 iframe(Word、PowerPoint、Excel)中查看文件

标签 javascript jquery html iframe src

我有一个 HTML 页面,其中有许多通过页面顶部的下拉菜单/无序列表显示的链接(使用 Bootstrap 3 导航栏)。这些链接指向内部服务器上托管的 MS Office 文档(Word、Excel、PowerPoint)。

通过单击链接,我希望在同一页面的 iframe 中打开它们,而不是使用单独的页面或下载。

我尝试了以下操作,但这总是打开标准弹出窗口以保存文件或在单独的窗口中打开它。

有人可以告诉我我在这里做错了什么吗?例如。除了刷新 iframe 之外还有什么?

我的链接下拉列表的 HTML(仅一项):

<li type='disc'><a href='javascript:void' class='navLink' name='test.pptx'>Text</a></li>

我的 iframe HTML:

<iframe src="#" width="100%" height="auto" frameborder="0" id="iView" name="iView"></iframe>

我的 jQuery:

$(document).on('click', '.navLink', function() {
    var fileName = $(this).attr('name');
    var fileLocation = 'http://somefilepath/uploads/';
    var fileSource = fileLocation + fileName;
    $('#iView').prop('src', fileSource);
});

编辑

如果这种方法不起作用,是否有办法在 HTML 网站中嵌入 MS Office 文档?

最佳答案

问题是您的网络服务器返回带有“Content-disposition:attachment”HTTP header 的文件。这会弹出“另存为/打开”对话框。您想要的是内联附件。

更多信息在这里:

Content-Disposition:What are the differences between "inline" and "attachment"?

注意:无法在客户端处理(即通过 JS),您需要修改您的服务器应用程序。

关于javascript - 使用 jQuery 在 iframe(Word、PowerPoint、Excel)中查看文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25454776/

相关文章:

javascript - 如何从站点地图生成器中排除网址

javascript - 缩放 fabric js Canvas 及其所有对象

javascript - 向列表元素 HTML 添加空格

javascript - this._callback.apply 不是函数! Node js Mysql错误

javascript - 将在单击时删除特定单词的 jQuery 函数

javascript - 在 iFrame 之间传递变量 ColdFusion

javascript - html嵌套元素移除类

javascript - 哪个jquery版本存在outerHTML方法

html - 带有边框的悬停跳跃上的 CSS 图像交换

javascript - 在 Three.js 中使用 Raycaster 重置对象的 Material 属性