Skip to content

Instantly share code, notes, and snippets.

@mrowa44
Last active October 26, 2016 14:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mrowa44/c56b027b2f290fa66a24 to your computer and use it in GitHub Desktop.
Save mrowa44/c56b027b2f290fa66a24 to your computer and use it in GitHub Desktop.
getHTML() {
let selector = this.props.selector;
let xhr = new XMLHttpRequest();
xhr.open('GET', this.props.from, true);
xhr.onreadystatechange = function() {
if (this.readyState === 4) {
let parser = new DOMParser();
let document = parser.parseFromString(xhr.responseText, 'text/html');
return document.querySelector(selector);
}
};
xhr.send();
}
@skycocker
Copy link

getHtml: function(callback) {
  var selector = this.props.selector;
  var xhr      = new XMLHttpRequest();

  xhr.open('GET', this.props.from, true);

  xhr.onreadystatechange = function() {
    if(xhr.readyState !== XMLHttpRequest.DONE) return;
    if(xhr.status     !== 200)                 return;

    var parser           = new DOMParser();
    var returnedDocument = parser.parseFromString(xhr.responseText, 'text/html');
    var element          = returnedDocument.querySelector(selector);

    callback(element);
  };

  xhr.send();
}

@mrowa44
Copy link
Author

mrowa44 commented Feb 17, 2016

  getInitialState() {
    return { html: null }
  },
  componentDidMount() {
    this.getHtml(this.setStateHtml);
  },
  getHtml(callback) {
    var selector = this.props.selector;
    var xhr = new XMLHttpRequest();
    xhr.open('GET', this.props.from, true);
    xhr.onreadystatechange = function() {
      if(xhr.readyState !== XMLHttpRequest.DONE) return;
      if(xhr.status !== 200) return;
      var parser = new DOMParser();
      var returnedDocument = parser.parseFromString(xhr.responseText, 'text/html');
      var element = returnedDocument.querySelector(selector);
      callback(element);
    };
    xhr.send();
  },
  setStateHtml(element) {
    this.setState({html: element.innerHTML})
  }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment