3

sharepoint と ajax の機能に奇妙な問題があります。Web パーツ内に UpdatePanel が配置されています。部分的なポストバックが発生すると、ページ タイトルが失われます。

一時的な部分的な解決策は、タイトル要素を 1 行に記述し、その中にスペースやコントロールを使用しないことであることがわかりました。リテラル コントロールでさえありません。

しかし、すべてのページに sommon タイトルを提供する何らかの方法が必要なので、タイトルは次のようになります: My default title - Current page title

これを解決する方法はありますか?

4

5 に答える 5

5

この厄介な問題に対する私の解決策を共有したいと思いました。私が最終的にやったのは、以下にまとめたこの便利な小さなスクリプトを捨てることでした。これをカスタム ページ レイアウトまたはカスタム マスター ページに配置できます。これは、AJAX がタイトルを変更する前に AJAX イベント ハンドラーを接続してタイトルを取得し、上記の Darpy のコードを使用してタイトルを再適用することによって機能します。これにより、適切なページ タイトルが常に表示されるようになります。

<script type="text/javascript">

// This script is to fix the issue where AJAX causes SharePoint 
// publishing pages to sometimes make the page title something 
// whacky. 
var app = Sys.Application;
var origTitle = "";
app.add_init(SPCustomAppnInit);


function SPCustomAppnInit(sender) {
  origTitle = document.title; // grab the original title.
  var prm = Sys.WebForms.PageRequestManager.getInstance();
  if (!prm.get_isInAsyncPostBack())
  {
 prm.add_pageLoaded(SPCustomPageLoaded); // wire up loaded handler.
  }
}

function SPCustomPageLoaded(sender, args) {

 document.title = origTitle; // put the original title back on the document.
}

<script>
于 2009-01-19T17:17:17.293 に答える
3

これはすでに回答されていることを認識していますが、0.02 ドルを投入します。この問題は、(1) AJAX 非同期ポストバックを使用している、(2) ページの <head> に複数行の <title> 要素があるという 2 つの条件が原因で発生しているようです。

マスター ページを確認します。これに沿ったものがある場合:

<title>
<sharepointwebcontrols:listitemproperty property="Title" ...>
</title>

...次に、次のようにすべてを 1 行に変更します。

<title><sharepointwebcontrols:listitemproperty property="Title" ...></title>

問題が解決しました。JavaScript は必要ありません。

于 2010-11-10T20:04:42.407 に答える
3

ニュースグループの投稿への参照はありませんが、drax が述べたように、これは公開ページに関する既知の問題です。私が過去に使用した回避策は、ページのタイトルをハード コードすることです。メタデータのタイトルが失われるのはバグの一部です。

ハードコーディングが不可能なときは、javascript を使用してページ タイトルを変更しました。

Microsoft は、次の SharePoint リリースでこの問題を修正する予定です。

于 2008-12-01T15:09:33.697 に答える
0

これは純粋な sharepoint の問題のようです。また、公開ページ レイアウトに基づくサイトだけが影響を受けているようです。

firebug で応答をデバッグしたところ、何らかの理由でページ タイトルの設定が返されたため、サーバーからの応答には更新パネル情報だけでなく、空のページ タイトルも含まれていました。

Web パーツをデバッグしましたが、ページ タイトルで再生されるものはありません。パブリッシングを使用しないか、タイトル内のコントロールを使用しないことをお勧めします。

私は現在、私が働いている会社でこの問題に取り組んでいるので、何かを見つけたら、私たちの調査結果をアップロードします.

于 2008-12-01T14:20:59.910 に答える
0

次の@をWebパーツユーザーコントロールの先頭に追加して問題を修正しました

<script type="text/javascript"> 

// This script is to fix the issue where AJAX causes SharePoint  
// publishing pages to sometimes make the page title something  
// whacky.  
var app = Sys.Application; 
var origTitle = ""; 
app.add_init(SPCustomAppnInit); 


function SPCustomAppnInit(sender) { 
  origTitle = document.title; // grab the original title. 
  var prm = Sys.WebForms.PageRequestManager.getInstance(); 
  if (!prm.get_isInAsyncPostBack()) 
  { 
 prm.add_pageLoaded(SPCustomPageLoaded); // wire up loaded handler. 
  } 
} 

function SPCustomPageLoaded(sender, args) { 

 document.title = origTitle; // put the original title back on the document. 
} 

</script> 

ありがとう :D

于 2010-03-20T21:24:06.130 に答える