Я бы склонялся к этой проблеме с кешем.
Как насчет того, чтобы попробовать этот плагин (или посмотреть, как он работает): http://plugins.jquery.com/project/reload
По сути, это позволит вам сделать это:
setInterval(function () {
$('#nowplaying-script').reload();
}, 1000);
Если вы не хотите использовать плагин, все, что он делает, это добавляет текущую дату к параметрам URI.
Еще я заметил, что загружаемый скрипт содержит document.write
. Даже если вам удалось перезагрузить его, он не будет делать то, что вы ожидаете.
Фактически, вызов document.write
на уже загруженной HTML-странице приведет к тому, что ваша страница станет пустой и будет содержать только содержимое, переданное document.write
.
Теперь я не уверен, что ваш скрипт работает на том же имени хоста, что и загружаемый скрипт, если вам не нужен JSONP API вместо скрипта, который пишет на страницу.
Если они не предлагают JSONP API, более хакерским способом решения этой проблемы будет написание серверного сценария, который действует как прокси. По сути, он будет загружать http://s4.total -streaming.com / xml.php? Station = 1269 & get = js , анализировать его на стороне сервера с помощью substr или RegEx и возвращать обратно нужный текст, в этом случае название песни, воспроизводимой в данный момент.
Другим способом решения этой проблемы было бы перезаписать метод document.write
и заставить его печатать содержимое в div, а не на экране следующим образом:
document.write = function(songName) {
$('#nowplaying').text(songName);
};
Лично я бы не использовал это решение, но оно будет работать, если другие решения слишком сложны для настройки. Помните, что все вызовы document.write
на этой странице будут печатать содержимое в ваш элемент #nowplaying
. Возможно, вам следует переместить свой тег SCRIPT из элемента #nowplaying
, если вы используете вышеуказанное решение.