Javascript 使用HTML5手动隐藏twitter引导工具提示时出错<;对象>;元素

Javascript 使用HTML5手动隐藏twitter引导工具提示时出错<;对象>;元素,javascript,html,object,twitter-bootstrap,Javascript,Html,Object,Twitter Bootstrap,对于我的第一个JavaScript应用程序,我正在构建一个基于小部件的设计器,并使用各种基于SVG的小部件,这些小部件包含在带有对象标记的HTML主体中。我试图在用户单击widget对象时关联一个引导工具提示,但是当在其他非对象HTML元素上使用工具提示时,会出现奇怪的错误 当对象标记吞噬鼠标事件时,不可能用鼠标悬停触发工具提示,我唯一可以用来显示工具提示的组合是以下代码(其他代码都不起作用,bootstrap抱怨): 此代码显示工具提示,但出现错误,在2秒超时后无法获取IE10中未定义或空引用

对于我的第一个JavaScript应用程序,我正在构建一个基于小部件的设计器,并使用各种基于SVG的小部件,这些小部件包含在带有对象标记的HTML主体中。我试图在用户单击widget对象时关联一个引导工具提示,但是当在其他非对象HTML元素上使用工具提示时,会出现奇怪的错误

当对象标记吞噬鼠标事件时,不可能用鼠标悬停触发工具提示,我唯一可以用来显示工具提示的组合是以下代码(其他代码都不起作用,bootstrap抱怨):

此代码显示工具提示,但出现错误,在2秒超时后无法获取IE10中未定义或空引用的属性“originAltile”以隐藏工具提示。我不能使用工具提示对象选项(例如延迟选项),因为我得到了相同的错误。Chrome中也存在同样的问题,尽管Chrome没有报告错误(但没有隐藏)

我确信这与试图在对象标记上使用工具提示有关,否则工具提示通常会正常工作。但是,我对JavaScript还比较陌生,所以如果我在做一些愚蠢的事情,请告诉我,引导/Jquery代码太复杂,我无法跟踪错误

使用:HTML5、IE10、最新推特引导、visual studio 2012 web

谢谢你的帮助/指点

更新:添加了将对象插入DOM的代码

    var objWidget = document.createElement("object");
    objWidget.type = "image/svg+xml";
    objWidget.data = "widgets/" + widgetFile + "." + widgetExt      // location of widget
    objWidget.className = "widget"
    var widgetName = "objWidget" + widgetNum;
    targetDiv = "widgetContainer"
    objWidget.id = widgetName;
    document.getElementById(targetDiv).appendChild(objWidget);   // Add to Div
    var objID = document.getElementById(widgetName);
    objID.addEventListener("load", function () {      // access properties once the file is loaded
        var objDoc = objID.contentDocument;
        objDoc.addEventListener("dragstart", drag_start, false);
        objDoc.addEventListener("dragover", drag_over, false)
        objDoc.addEventListener("drop", drop, false)
        objDoc.getElementById("widget").setAttribute("data-widgetName", widgetName);   // set a data attribute on the SVG that points to the parent object as object that created the event isn't recorded in the event.currentTarget
        objID.setAttribute("draggable", "true")
        objID.style.setProperty("position", "absolute");
        objID.style.setProperty("left", objLeft + "px");
        objID.style.setProperty("top", objTop + "px");
        objID.style.setProperty("z-index", widgets[widgetNum].zOrder);
        objDoc.defaultView.loaded(widgetName);         // run widget startup routine only if it isn't a new widget
        objDoc.defaultView.addEventListener("click", widgetClick, false);
        objDoc.defaultView.addEventListener("dblclick", widgetDblClick, false);
    }, false);

我测试您的代码(将工具提示添加到svg标记中)请参见:FF和chrome没有问题

您的示例代码没有显示原始标题的用法?Bass,如果我将原始标题添加到属性中(它实际上需要数据原始标题),我甚至无法让“显示”正常工作(相同错误)。你知道为什么引导工具提示会在对象元素上导致这个问题吗?我测试了你的代码(将工具提示添加到svg标记中)请看:FF和chrome没有问题,所以ie10可能会导致这个错误?另请参见:嗨,巴斯,谢谢你设置了引导层。这在IE10中起作用,但是我的问题是SVG作为对象元素(来自外部SVG文件)插入DOM,而不是作为内联SVG。您可以添加一些插入DOM的示例代码吗?也许你的超时是在创建之前触发的?是的,我在重建我的网站和它现在工作时,我想我在引导版本控制方面遇到了问题。谢谢你的帮助。
    var objWidget = document.createElement("object");
    objWidget.type = "image/svg+xml";
    objWidget.data = "widgets/" + widgetFile + "." + widgetExt      // location of widget
    objWidget.className = "widget"
    var widgetName = "objWidget" + widgetNum;
    targetDiv = "widgetContainer"
    objWidget.id = widgetName;
    document.getElementById(targetDiv).appendChild(objWidget);   // Add to Div
    var objID = document.getElementById(widgetName);
    objID.addEventListener("load", function () {      // access properties once the file is loaded
        var objDoc = objID.contentDocument;
        objDoc.addEventListener("dragstart", drag_start, false);
        objDoc.addEventListener("dragover", drag_over, false)
        objDoc.addEventListener("drop", drop, false)
        objDoc.getElementById("widget").setAttribute("data-widgetName", widgetName);   // set a data attribute on the SVG that points to the parent object as object that created the event isn't recorded in the event.currentTarget
        objID.setAttribute("draggable", "true")
        objID.style.setProperty("position", "absolute");
        objID.style.setProperty("left", objLeft + "px");
        objID.style.setProperty("top", objTop + "px");
        objID.style.setProperty("z-index", widgets[widgetNum].zOrder);
        objDoc.defaultView.loaded(widgetName);         // run widget startup routine only if it isn't a new widget
        objDoc.defaultView.addEventListener("click", widgetClick, false);
        objDoc.defaultView.addEventListener("dblclick", widgetDblClick, false);
    }, false);