merof
merof

Reputation: 129

Is there a way to read <script> tag contents

I have a site in which there is a <script> with a JSON inside. With user script in Tampermonkey, I want to get that JSON to work with it later.

So I thought that I can get it with getElemntsByTagName("script"), but I couldn't figure out how to get string out of it.

  1. How do you get a string from getElemntsByTagName("script"), like console.log does?

  2. Is there an easier way to do so?

window.wpProQuizInitList = window.wpProQuizInitList || [];
window.wpProQuizInitList.push({
  id: '#wpProQuiz_67',
  init: {
    quizId: 67,
    mode: 2,
    globalPoints: 76,
    timelimit: 0,
    resultsGrade: [0],
    bo: 3,
    qpp: 0,
    catPoints: [76],
    formPos: 0,
    lbn: "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0438 \u0442\u0435\u0441\u0442",
    json: {
      "2944": {
        "type": "single",
        "id": 2944,
        "catId": 0,
        "points": 1,
        "correct": [0,0,1,0]
      },
      "2945": {
        "type": "single",
        "id": 2945,
        "catId": 0,
        "points": 1,
        "correct": [0,1,0,0]
      },
      "2946": {
        "type": "single",
        "id": 2946,
        "catId": 0,
        "points": 1,
        "correct": [0,0,1,0]
      },
      …
    }
  }
}

Upvotes: 3

Views: 1612

Answers (2)

Unmitigated
Unmitigated

Reputation: 89517

You can use document.querySelector to get the first <script> element; there is no need to obtain a live HTMLCollection to get one element. You can then read its textContent.

let value = document.querySelector('script').textContent;

Upvotes: 4

Ric
Ric

Reputation: 8805

getElementsByTagName("script") will return an HTMLCollection which contains a list of script tags. You can get the text of the first script tag like this:

getElementsByTagName("script")[0].innerText

Upvotes: 0

Related Questions