whmcs新标签中的发票

时间:2015-11-17 17:07:51

标签: javascript php whmcs

我想在新标签页或弹出窗口中打开whmcs的发票。 这个问题的最大部分已经解决,但有一件事仍然存在问题。我使用了一些js在新标签页中打开发票,但在原始页面上,打开发票后,它还会加载并返回404.发票打开时没有任何问题。

这是js

            <script>
            function OpenInNewTab(url) {
                var win = window.open(url, '_blank');
                win.focus();
                 }
            </script>

这是调用发票并将其显示在表格中的代码。注意:这是一个聪明的.tpl

<tr onclick="clickableSafeRedirect(event, OpenInNewTab('viewinvoice.php?id={$invoice.id}'), false)">
                    <td>{$invoice.invoicenum}</td>
                    <td><span class="hidden">{$invoice.normalisedDateCreated}</span>{$invoice.datecreated}</td>
                    <td><span class="hidden">{$invoice.normalisedDateDue}</span>{$invoice.datedue}</td>
                    <td>{$invoice.total}</td>
                    <td><span class="label status status-{$invoice.statusClass}">{$invoice.status}</span></td>
                    <td class="responsive-edit-button" style="display: none;" >
                        <a href="viewinvoice.php?id={$invoice.id}" class="btn btn-block btn-info" >
                            {$LANG.manageproduct}
                        </a>
                    </td>
                </tr>

我在这一行添加了OpenInNewTab

<tr onclick="clickableSafeRedirect(event, OpenInNewTab('viewinvoice.php?id={$invoice.id}'), false)">

这是原始代码

<tr onclick="clickableSafeRedirect(event, viewinvoice.php?id={$invoice.id}, false)">

提前致谢!!

编辑:我尝试将clickableSafeRedirect函数与OpenInNewTab函数合并,这导致在原始页面上加载了发票的空标签。

这是clickableSafeRedirect函数

function clickableSafeRedirect(clickEvent, target, newWindow) {

    var eventSource = clickEvent.target.tagName.toLowerCase();
    var eventParent = clickEvent.target.parentNode.tagName.toLowerCase();
    var eventTable = clickEvent.target.parentNode.parentNode.parentNode;
    if (jQuery(eventTable).hasClass('collapsed')) {
        // This is a mobile device sized display, and datatables has triggered folding
        return false;
    }
    if(eventSource != 'button' && eventSource != 'a') {
        if(eventParent != 'button' && eventParent != 'a') {
            if (newWindow) {
                window.open(target);

            } else {
                window.location.href = target;

            }
        }
    }
}

1 个答案:

答案 0 :(得分:0)

WHMCS中的这个函数clickableSafeRedirect()有一个参数,允许你打开新窗口而不是自定义函数。

删除OpenInNewTab()功能并执行此操作:

clickableSafeRedirect(event, viewinvoice.php?id={$invoice.id}, true);
---------------------------------------------------------------^^^^

在新窗口中打开的第三个参数中设置为true。查看whmcs中的代码。该函数的定义是:

function clickableSafeRedirect(clickEvent, target, newWindow)