Xpages xhr取消了单击带有xe:tooltipDialog的xp:link时出现的错误&;xe:djContentPane,部分刷新

Xpages xhr取消了单击带有xe:tooltipDialog的xp:link时出现的错误&;xe:djContentPane,部分刷新,xpages,xpages-extlib,Xpages,Xpages Extlib,我在使用xp:link上的onclick事件和弹出工具提示对话框(执行部分刷新以获取其内容)的鼠标盖时遇到问题。 每当用户想要单击链接时,工具提示可能已经弹出并加载其内容。由于链接将重定向到另一个页面,内容窗格中的部分刷新事件将被切断。 这几乎每次都会导致错误“xhr cancelled”(您可以在浏览器控制台中看到它,如Firebug) 我尝试过几种方法,比如在重定向到另一个页面之前尝试.cancel()取消contentpane,但它不起作用,可能是因为它位于tooltipDialog中,所

我在使用xp:link上的onclick事件和弹出工具提示对话框(执行部分刷新以获取其内容)的鼠标盖时遇到问题。 每当用户想要单击链接时,工具提示可能已经弹出并加载其内容。由于链接将重定向到另一个页面,内容窗格中的部分刷新事件将被切断。 这几乎每次都会导致错误“xhr cancelled”(您可以在浏览器控制台中看到它,如Firebug)

我尝试过几种方法,比如在重定向到另一个页面之前尝试.cancel()取消contentpane,但它不起作用,可能是因为它位于tooltipDialog中,所以我无法获得它的句柄

下面是一个代码示例,您可以通过将其放入Xpages扩展库demo nsf中的新xpage(充满数据)来测试它。只需将链接悬停,在工具提示加载完其内容之前,单击该链接

    <?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
    xmlns:xe="http://www.ibm.com/xsp/coreex">
    <xp:this.data>
        <xp:dominoView var="view1" viewName="AllContacts"></xp:dominoView>
    </xp:this.data>
    <xp:br></xp:br>
    <xp:br></xp:br>
    <xp:link escape="true" text="Hover me" id="link1" style="margin-left:50px;"
        value="/Core_DojoLayout.xsp">
        <xp:this.onmouseover><![CDATA[tooltipTimerId = setTimeout ( "XSP.openTooltipDialog('#{id:tooltipDialog1}','#{id:link1}');", 500 );
                    ]]></xp:this.onmouseover>
        <xp:this.onmouseout><![CDATA[if (tooltipTimerId){
                clearTimeout (tooltipTimerId);
            }]]></xp:this.onmouseout>
    </xp:link>
    <xp:br></xp:br>
    <xp:br></xp:br>
    <xe:tooltipDialog id="tooltipDialog1">
        <xe:djContentPane id="djContentPane1" refreshOnShow="false"
            partialRefresh="true" preload="true">
            <xp:repeat id="repeat1" rows="1000" value="#{view1}"
                var="row">
                <xp:text escape="true" id="computedField1"
                    value="#{row.FirstName}">
                </xp:text>
                &#160;&#160;
                <xp:text escape="true" id="computedField2"
                    value="#{row.LastName}">
                </xp:text>
                <xp:br></xp:br>
            </xp:repeat>
        </xe:djContentPane>
    </xe:tooltipDialog>
</xp:view>

  

摆渡-您必须将它们组合在一起吗?另一种方法是在链接旁边放置一个图标,并将鼠标盖添加到图标中(可能是一个小人图标),然后您可以在鼠标盖上添加一些内容,并单击一些内容,而不是尝试组合

另一种选择是将链接和div(并排)放在父对象(表、div或其他)的内部,并使用CSS将div放在链接的顶部。然后将鼠标悬停在DIV上,然后刷新工具提示,使链接保持完整并可单击


如果有帮助,请告诉我:)

摆渡-您必须将它们合并吗?另一种方法是在链接旁边放置一个图标,并将鼠标盖添加到图标中(可能是一个小人图标),然后您可以在鼠标盖上添加一些内容,并单击一些内容,而不是尝试组合

另一种选择是将链接和div(并排)放在父对象(表、div或其他)的内部,并使用CSS将div放在链接的顶部。然后将鼠标悬停在DIV上,然后刷新工具提示,使链接保持完整并可单击


如果有帮助,请告诉我:)

我修好了!问题是在出现问题时调用XSP.error。因为我不想要任何难看的警报框,所以我将用这段代码重新定义函数。XSP消息(在我的例子中是错误)被记录到控制台

    <xp:scriptBlock id="scriptBlock1"
    value="XSP.error = function(err){
            console.error('XSP error : ' + err);
        };">
</xp:scriptBlock>

我修好了!问题是在出现问题时调用XSP.error。因为我不想要任何难看的警报框,所以我将用这段代码重新定义函数。XSP消息(在我的例子中是错误)被记录到控制台

    <xp:scriptBlock id="scriptBlock1"
    value="XSP.error = function(err){
            console.error('XSP error : ' + err);
        };">
</xp:scriptBlock>


谢谢你的回答,马基。是的,我必须把它们结合起来。它目前正在工作。用户单击链接打开de文档,但如果用户稍等,则将使用工具提示显示其他信息。因此,链接和工具提示都起作用。除了这个错误消息,一切正常。我需要有两个功能在任何时候工作。谢谢你的回答马基。是的,我必须把它们结合起来。它目前正在工作。用户单击链接打开de文档,但如果用户稍等,则将使用工具提示显示其他信息。因此,链接和工具提示都起作用。除了这个错误消息,一切正常。我需要有两个功能在任何时候工作。