我有一个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);
});
如果这种方法不起作用,有没有一种方法可以将MS Office文档嵌入HTML网站中?
问题是您的Web服务器返回带有“ Content-disposition:附件” HTTP标头的文件。这将提示另存为/打开对话框。您想要的是内联附件。
此处有更多信息:
Content-Disposition:What are the differences between "inline" and "attachment"?
注意:无法在客户端上处理(即通过JS),您需要修改服务器应用程序。