在Firefox和Chrome中,XML DOM的文档节点对象的documentURI
属性将返回DOM的URI,前提是该对象是使用XMLHTTPRequest
对象创建的。使用Internet Explorer检索XML DOM对象的URI
是否存在Internet Explorer DOM的等效属性,如果是的话是什么? documentURI
,url
,URL
和baseURI
属性全部返回null或undefined。
的MSXML documentation为url
特性,使得我希望这将返回在创建该DOM HTTP请求中使用的URL - 但给出的例子不使用XMLHTTPRequest
。
我用来创建DOM,然后测试该属性的代码如下:
function getXslDom(url) {
if (typeof XMLHttpRequest == "undefined") {
XMLHttpRequest = function() {
return new ActiveXObject("Msxml2.XMLHTTP.6.0");
};
}
var req = new XMLHttpRequest();
req.open("GET", url, false);
req.send(null);
var status = req.status;
if (status == 200 || status == 0) {
return req.responseXML;
} else {
throw "HTTP request for " + url + " failed with status code: " + status;
}
};
var xslDom = getXslDom('help.xsl');
// the following shows "undefined" for IE
window.alert(xslDom.documentURI);
在MSDN上给出的例子没有使用XMLHttpRequest,但它会是一个选择使用替代方法(DOMDocument->加载)? – 2012-07-12 13:17:18
@ Dr.Molle不幸的是,这必须使用XMLHttpRequest。这是针对基于浏览器的XSLT 2.0处理器的JavaScript API的 - 所以DOM对象很可能来自AJAX风格的请求,但我们实际上并不能控制DOM的创建方式 - 因为这是界面的另一面。 – pgfearo 2012-07-12 13:43:41
你试过'.URLUnencoded'吗?对不起,我没有IE来测试它。除了IE之外,它在大多数浏览器中都是未定义的。 – Adi 2012-07-14 13:07:05