Firefox上的XMLHttpRequest网站元信息

时间:2014-09-19 12:14:08

标签: javascript xmlhttprequest firefox-addon

我是Firexfox附加组件开发的新手,我想从互联网上的网站解析元标记。我的Firefox附加组件开发环境已完全设置,工具栏中的面板显示为应有的位置。当我打开面板时,当前访问过的网站应该通过其meta标签读取。在下文中,您将看到amazon.de为例。

这是我的main.js文件的样子:

var { ToggleButton } = require('sdk/ui/button/toggle');
var panels = require("sdk/panel");
var self = require("sdk/self");

var button = ToggleButton({
  id: "my-button",
  label: "my button",
  icon: {
    "16": "./icon-16.png",
    "32": "./icon-32.png",
    "64": "./icon-64.png"
  },
  onChange: handleChange
});

var panel = panels.Panel({
  contentURL: self.data.url("panel.html"),
  onHide: handleHide
});

function handleChange(state) {
  if (state.checked) {
    panel.show({
      position: button
    });
  }
}

function handleHide() {
  button.state('window', {checked: false});
}

这是当前访问过的网站应该通过其元标记读取的面板:

<script>
    // https://developer.mozilla.org/en-US/docs/Introduction_to_using_XPath_in_JavaScript

    var req = new XMLHttpRequest();

    req.open("GET", "http://www.amazon.de/Apple-Smartphone-Retina-Display-Megapixel-Bluetooth/dp/B00F8JF2OM/", false); 
    req.send(null);

    var xmlDoc = req.responseXML;       

    var nsResolver = xmlDoc.createNSResolver( xmlDoc.ownerDocument == null ? xmlDoc.documentElement : xmlDoc.ownerDocument.documentElement);

    //XPath 'html//meta[@name="title"]/@content'
    var itemIterator = xmlDoc.evaluate('html//meta[@name="title"]/@content', xmlDoc, nsResolver, XPathResult.ANY_TYPE, null );

    var thisHeading = itemIterator.iterateNext();

    var alertText = 'Items:\n'

    while (thisHeading) {
      alertText += thisHeading.textContent + '\n';
      thisHeading = itemIterator.iterateNext();
    }
</script>

我没有收到任何错误,也没有收到任何警报或输出数据。 但是,Firfox XPath插件告诉我路径正确并显示数据。

0 个答案:

没有答案