Я просто проверяю, можно ли загрузить скрипт с помощью URL-адреса данных. К моему удивлению, в моем реальном Chromium это работает.Загрузка содержимого сценария из URL-адреса данных
загружает следующий документ: "Здравствуйте!"
<html>
<head>
<script type="text/javascript">
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'data:text/javascript,alert("hello!");';
head.appendChild(script);
head.removeChild(script);
</script>
</head>
</html>
... и окно, сообщающее всплывает.
Не так ли плохо, как eval()
? Это позволяет компилировать произвольное содержимое (содержащее любые POSTed-содержимое или параметры GET) и «вставлять» его в текущий код!
Может кто-нибудь, пожалуйста, сообщите мне, является ли это предполагаемым поведением, характерным для реальных браузеров?
Связанный: http://stackoverflow.com/questions/9129666/whats-the-better-practice-eval-or-append-script –