Получить innerHTML из динамически добавленного тега скрипта

0
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<script type="text/javascript" id="embeddedScript">
    var script = document.createElement("script");
    script.setAttribute("type", "text/javascript");
    script.setAttribute("id", "scriptData");
    script.src = "DynamicText.jsp";
    script.onload = function() {
        alert(x);
        alert(document.getElementById("scriptData"));
        alert(document.getElementById("scriptData").innerHTML);
        alert(document.getElementById("embeddedScript").innerHTML);
    };
    document.getElementsByTagName("head")[0].appendChild(script);
</script>
</body>
</html>

DynamicText.jsp

x="Hello World!"

Первое предупреждение дает Hello World!

Второе предупреждение дает [Object HTMLScriptElement]

Я ожидал, что третье предупреждение даст значение x="Hello World!" Но он отображает пустое значение.

Но для четвертого предупреждения я мог видеть весь текст, который был внутри тега скрипта с id "embeddedScript"

Причина?

Теги:
innerhtml

1 ответ

0

Тег js script, созданный scriptData, не содержит содержимого между его тегами. Это просто ссылка на ресурс js для выполнения. Это выглядело бы так:

<script type="text/javascript" id="scriptData" src="DynamicText.jsp"></script>
  • 0
    Есть ли способ получить текст?
  • 0
    Вы можете открыть файловый поток и прочитать содержимое файла DynamicText.jsp , но вам нужно сделать это в программном коде на стороне сервера, а не в javascript, так как файл находится на сервере.
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню