Jackmc1047 Jackmc1047 - 1 year ago 81
AngularJS Question

How to access JSON data in script tag using jQuery in a bookmarklet

I'm writing a bookmarklet that injects jQuery and then tries to access certain data on a webpage. The page uses AngularJS. The JSON data I want can be seen in a script tag when clicking view source in Chrome.

<script type="text/json" class="menu-page-data" page="0">
/* The JSON data */

I'm unable to access this data though with

How can a bookmarklet parse this JSON?

Answer Source

Guided by @DG., the following code works to get the text inside the <script> tag and parse it as JSON.

$.get(document.location.href).done(function (htmlText) {
    var scriptClassIndex = htmlText.indexOf('menu-page-data');
    var scriptSubStr = htmlText.substring(scriptClassIndex);
    var scriptEndIndex = scriptSubStr.indexOf('</script>');

    var justScript = scriptSubStr.substring(0, scriptEndIndex);
    justScript = justScript.replace('menu-page-data" page="0">', '');
    justScript = justScript.trim();
    var jsonData = jQuery.parseJSON(justScript);
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download