簡體   English   中英

每10秒刷新頁面標題-Javascript

[英]Refresh page title every 10 seconds - Javascript

我目前正在嘗試每10秒刷新一次頁面標題,以確保此處的歌曲信息有所更改:

在此處輸入圖片說明

但是在歌曲改變之后,我仍然擁有相同的頁面標題:

在此處輸入圖片說明

我的JavaScript setInterval函數無法正常工作。

這是我的代碼(應該起作用的):

<script type="text/javascript">
function songToTitle() {
    document.title = "BDR | <?php echo $radio_info['now_playing']; ?>";
}
songToTitle();
setInterval(songToTitle, 10000);
</script>
<title>BDR | Loading Song Title...</title>

我真的不知道這是怎么回事。

它會正確導入歌曲名稱,但不會刷新。

誰能幫我這個?

編輯:

我也嘗試使用這個:

<script type="text/javascript">
function songTitle(){
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.title.innerHTML = xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","http://www.x86cam.com/wp-content/plugins/songTitle.php",true);
xmlhttp.send();
}
songTitle();
setInterval(songTitle, 5000);
</script>

它甚至不會加載標題。

您無法在其中使用該php代碼,該函數運行時將不會執行,因為PHP在服務器上運行,該代碼現在已在您的瀏覽器中運行,因此,一旦歌曲更改,該字符串仍將是與瀏覽器向您的服務器詢問該.html文件時使用的字符串完全相同

您必須使用Xhr(每隔X秒)調用服務器詢問服務器當前標題是什么,然后根據該刷新標題。

您正在刷新靜態信息。 要獲取新信息,您必須使用AJAX。

在瀏覽器打開PHP之前先加載它。

換一種說法...

<?php echo $radio_info['now_playing']; ?>

變成

'Song Name'

因此,當Javascript查看它時,它只會看到Song Name ,而沒有一個更明智。

AJAX參考 -完整的API參考,並在頁面下提供示例供您參考。 還需要對您的響應頁面進行編程以正確響應。 通常我建議使用JSON,但由於數據量很少,您可能只能使用文本傳輸。

您可以使用POST發送數據,並且PHP文件的頂部可以包含以下內容:

<?php if ($_POST['songcheck'] === true) { echo $songName; return; }; ?>

PS-每10秒刷新一次不是很有效。 加載歌曲后,將歌曲長度改為+2或+3秒作為計時器。 好多了 :)

我猜您應該進行ajax調用或收聽某個事件以檢索更新的歌曲標題。 document.title = "BDR | <?php echo $radio_info['now_playing']; ?>"; 初始頁面加載時生成字符串。

好的。 我想到了。 我把它放在我的代碼中:

<script type="text/javascript">
function songTitle(){
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.title=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","songTitle.php",true);
xmlhttp.send();
}
songTitle();
setInterval(songTitle, 5000);
</script>

在我的songTitle.php ,它從Icecast服務器請求歌曲名稱並僅顯示該名稱。

現在每當歌曲改變時,其標題也會改變。

我只需要像在頁面上顯示歌曲信息的方式那樣集成XMLHTTPRequest即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM