【问题标题】:jqGrid cell contains file pathjqGrid 单元格包含文件路径
【发布时间】:2015-04-10 17:42:28
【问题描述】:

使用 jqGrid 4.5.2 和 jQuery 1.9.1 并读取 XML 文件作为网格的输入。一个单元格具有指向文件的路径。该文件可能有几种不同的类型(.doc、.htm、.pdf 等)。

在显示网格时,我需要让该单元格成为该文件共享的超链接。使用 link 的预定义格式类型,它确实提供了指向它的超链接,但它会将 Web 服务器信息放在链接的前面,例如:

http://localhost:55555/\\servername\filepath1\filepath2\thisdoc.doc

\\ 中的所有内容都从 XML 中检索。如何使单元格的内容成为超链接,但隐藏网站信息?

【问题讨论】:

    标签: jquery url hyperlink jqgrid


    【解决方案1】:

    我会为它编写一个自定义格式化程序,比如这个:

    var urlFormatter = function (cellValue, options, rowObject) {
        return '<a href="' + cellValue + '">' + cellValue + '</a>';
    };
    

    这样的结果应该是:

    <a href="servername\filepath1\filepath2\thisdoc.doc">
        servername\filepath1\filepath2\thisdoc.doc
    </a>
    

    更新:

    我没有意识到这是一个文件系统 URL。在这种情况下,像这样修改它:

    var urlFormatter = function (cellValue, options, rowObject) {
        return '<a href="file:///' + cellValue + '">' + cellValue + '</a>';
    };
    

    产量:

    <a href="file:///servername\filepath1\filepath2\thisdoc.doc">
        servername\filepath1\filepath2\thisdoc.doc
    </a>
    

    这应该可行。因为它以前不起作用的原因是浏览器将链接解释为相对链接,但您想要一个指向文件系统一部分的绝对链接

    【讨论】:

    • 我现在在 colModel 的格式化程序中拥有该功能。单元格值是正确的,但如果您将鼠标悬停在链接上,它仍然在文件路径前有localhost/55555,如果您右键单击并在新选项卡中打开,则会返回 404 Not Found 错误。
    • 等等,servername实际上是一个域?
    • 这是一个文件共享,各种文档(pdf、htm、doc 等)都位于其中。在网格中它看起来是正确的。我放了一个 console.log 语句来转储 cellvalue 并且它看起来也正确。但是,当您将鼠标悬停在链接上时,文件路径之前会出现“localhost:55555”(\\servername\filepath1\filepath2.....)。
    • 我进行了更改,但必须在文件中添加一个斜杠 (/):URL 的一部分。我可以复制链接并将其粘贴到新窗口中,它将打开,但无法右键单击链接(或单击它)使其打开。
    • 嗯,这是你能得到的最好的:stackoverflow.com/questions/18246053/…
    猜你喜欢
    • 2013-04-07
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 2021-07-11
    • 2012-08-04
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多