0

私の Web で title tag に関する問題があります<title></title>。Webタイトルの値がデータベースから取得されるようにデータベースに接続したいのですが、うまくいきました。しかし、Web タイトル (ページ全体ではなく) を自動更新したいときに、別の問題が発生しました。ajax からスクリプトを見つけましたが、Facebook のタイトル タグのように実際には成功しません。別のブラウザー (Opera など) から新しいデータを入力し、メイン ブラウザー (Firefox) に戻った後と仮定してください。タイトルタグはまったく変更されないか、自動更新されずに値が変更されます。私は本当にあなたの助けが必要です..!? これは私が試したスクリプトです..

setInterval(function() {
$.ajax({
  url: '{BASE_URL}/system/back-end/main.php',
  url: 'main.html',
  //data: {name: 'username', password: 'userpass'},
  success: function() { document.title = '$value';},
  dataType: 'text'
});
}, 1000);

function getXHR() { 
  if (window.XMLHttpRequest) {
    // Chrome, Firefox, IE7+, Opera, Safari
    return new XMLHttpRequest(); 
  } 
  // IE6
  try { 
    // The latest stable version. It has the best security, performance, 
    // reliability, and W3C conformance. Ships with Vista, and available 
    // with other OS's via downloads and updates. 
    return new ActiveXObject('MSXML2.XMLHTTP.6.0');
  } catch (e) { 
    try { 
      // The fallback.
      return new ActiveXObject('MSXML2.XMLHTTP.3.0');
    } catch (e) { 
      alert('This browser is not AJAX enabled.'); 
      return null;
    } 
  } 
}
function setPageTitle(newValue) {
  document.title = '$value';
}

function messageCountAsPageTitle(msgCount) {
  // TODO: determine where 'another text in the page title' should be defined
  msgCount = '{PESAN_ENTRY} {BERKAS} {BERKAS}';
  setPageTitle('(' + msgCount + ') - another text in the page title');
}
<!--</tpl:tmpl>

function getMessageCount(callback) {
  var url = 'main.html?' + 'main.php?' + (new Date()).getTime(), // prevent caching
    xhr = getXHR();
  xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
      callback(xhr.responseText);
    }
  };
  xhr.timeout = 2000; // Set the timeout to be less than the frequency we call this
  xhr.open("GET", url, true);
  xhr.send();
}
setInterval(function() {getMessageCount(messageCountAsPageTitle);}, 3000);

助けてください?

4

1 に答える 1

0

jQuery (上部の $.ajax() 呼び出し) を使用している場合は、下部ではなく、これのみを使用する必要があります。HTML のソースに jQuery が含まれていることを確認してください (その方法については Google jQuery を参照)。

新しいタイトルを返す php ファイルを作成する必要があります。

// script.php
echo 'My New Title';
exit();

次に、ソースで jQuery を使用して新しいタイトルにアクセスします。

setInterval(function() { 
  $.ajax({ 
     url: 'http://UrlToGetTheTitleFrom/script.php', 
     success: function(data) { document.title = data; }, 
     dataType: 'text' 
  }); 
}, 10000); 

(注: SetInterval EVERY SECOND の 1000 - これはミリ秒です。サーバーをそれほど速く動かしたくないことは確かです!)

于 2012-06-26T07:03:07.717 に答える