简体   繁体   中英

Parsing a web page using Javascript (ajax and jquery involved)

Trying to parse an ajax requested page for the word "function" and store the last matched character in an array. The only errors JSLint is returning are

unexpected ('space')

and

Combine this statement with the previous 'var' statement,

neither of which I believe should effect whether or not the code is executed. Any help is appreciated.

/*jslint browser: true*/
/*global $, jQuery, alert*/
$(document).ready(function () {
    "use strict";


    //retrieve page
    var xhr = new XMLHttpRequest();
    xhr.open("GET",      "https://abs.twimg.com/c/swift/en/init.27d18bf5a2b7d3e5fbcdbb86f85e7a534b11f06b.js", true);  
    xhr.responseType = "text";
    xhr.send();
    xhr.onload = function () {

        //set variables to be compared
        var page = xhr.responseText;
        var word = "function";

        //page and word locations
        var i = 0;
        var n = 0;
        var page_loc = page[i];            
        var word_loc = word[n];

        //matched result storage
        var chain = [""];

        // compare
        while (n < word.length - 1) {
            if (page_loc === word_loc) {
                n = n + 1;
                i = i + 1;
                console.log(i);
            } else {
                i = i + 1;
            }
        }

        //place matched result
        chain.push(page_loc);
        console.log(chain);
    };
});

So regarding your comment and question.

You don't need to iterate over that string, if you only want to check whether a given string is present in a response, you can use a built-in function indexOf() or in newer browsers includes() .

So the code would look as follow:

$(document).ready(function () {
  "use strict";

  var xhr = new XMLHttpRequest();
  xhr.open("GET", "https://abs.twimg.com/c/swift/en/init.27d18bf5a2b7d3e5fbcdbb86f85e7a534b11f06b.js", true);  
  xhr.responseType = "text";
  xhr.onload = function () {
    var page = xhr.responseText;
    var word = "function";
    if (page.indexOf(word) !== -1)
      console.log([word[word.length-1]]);
  };
  xhr.send();
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM