0

我有一个显示文件名列表的 K2 Smartform。当用户单击文件名时,程序会在浏览器 (IE) 的新选项卡中打开该文件(它们都是 PDF)。到目前为止这很好。如果单击列表中的第二个文件,它将在第三个选项卡中打开。这不是用户想要的。

他们希望第二个文件选择在与第一个文件相同的窗口中打开。

这是我可以看到的过程:

  1. 单击列表中的文件。
  2. 在选项卡中打开。
  3. 单击列表中的第二个文件。
  4. 如果已打开一个选项卡,其中包含列表中的文件,请在此处打开此文件。否则,为该文件打开一个新选项卡。

我想当他们点击第二个文件时自动关闭第一个选项卡会完成同样的事情。

如何才能做到这一点?

4

1 回答 1

1

当您处理打开链接时,首先,您可以做的事情是有限的。实际上,用户可以配置浏览器(IE、Chrome 等)以在新选项卡、窗口等中打开链接……而您作为表单开发人员无法更改这一点。

我制作了一个 jsfiddle 来重现您的情况并提出您可以测试的解决方案。我不保证它会在我使用 Mac 时工作,但我也在下面描述了一个更好的解决方案。

你可以在这里找到它: https ://jsfiddle.net/chevdor/45k40npv/

我想第一个例子(#1)是你现在发生的事情。使用“目标”属性,我尝试实施一个可能适合您的解决方案。单击#2 和#3 并检查这是否有效。我无法测试,因为我使用的是 Mac。

您可以在此处阅读有关目标属性的更多信息:

http://www.w3schools.com/tags/att_a_target.asp

另一个可以让您获得更多控制权的解决方案是使用 iFrame 控件。我认为它现在是 SmartForms 的标准配置。如果没有,您肯定可以从社区站点获取它。我建议您使用此 iFrame 创建一个新视图并定义一个名为“url”的参数(字符串)。

让我们用 K2 规则语言说话 :) “当参数更改时”、“并且参数已定义”,如果您将 URL 传递给 iFrame 控件的“传输数据”,它将显示您的文档。如果用户单击另一个文档,它将更新 SAME iFrame。使用此解决方案,将不会涉及任何选项卡。

请注意,它适用于您的浏览器支持的任何文档。某些类型可能需要插件。其他文件(即 zip 等)不会出现,而是会被下载。

我希望这有帮助。最好的问候,-chevdor

于 2015-04-10T16:33:33.260 回答