我有奇怪的问题与SharePoint和AJAX功能。我们有一个放置在webpart中的UpdatePanel。部分回发时,页面标题丢失。Sharepoint,ajax和页面标题
我们发现暂时的部分解决方案是将标题元素写入一行,并且不使用任何空格或控件,它甚至不是文字控件。
但我们需要一些方法来为所有页面提供sommon标题,所以标题是这样的: 我的默认标题 - 当前页面的标题
任何想法如何解决这个问题?
我有奇怪的问题与SharePoint和AJAX功能。我们有一个放置在webpart中的UpdatePanel。部分回发时,页面标题丢失。Sharepoint,ajax和页面标题
我们发现暂时的部分解决方案是将标题元素写入一行,并且不使用任何空格或控件,它甚至不是文字控件。
但我们需要一些方法来为所有页面提供sommon标题,所以标题是这样的: 我的默认标题 - 当前页面的标题
任何想法如何解决这个问题?
我没有对新闻组帖子的引用,但这是发布页面的已知问题,如drax所述。我过去使用的解决方法是在页面上硬编码标题 - 正在丢失的元数据标题是错误的一部分。
当硬编码是不可能的,我已经使用JavaScript来改变页面标题:document.title =“title fixup here”;
微软计划在下一个SharePoint发行版中解决这个问题。
这看起来像纯粹的共享点的问题。它看起来像只基于发布页面布局的网站会受到影响。
我在firebug中调试响应,由于某种原因它返回了页面标题的设置,所以来自服务器的响应不仅包含更新面板信息,还包含空白页面标题。
我调试了我们的webparts,没有一个玩页面标题。我建议不要使用发布,或者不要在标题中使用任何控件。
我们目前正在公司工作中处理这个问题,因此当我们找出某些事情时,我会上传您的调查结果。
你有没有想过为什么这只发生页面?这似乎很奇怪。 – xr280xr 2013-03-07 14:54:12
我以为我会分享我的解决这个讨厌的问题。我最终做的是扔下这个方便的小脚本放在一起。您可以将其放入自定义页面布局或自定义母版页中。它通过连接一个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>
谢谢!这完全解决了我的问题!我只希望我有mod特权,所以我可以修复你的造型:) – phairoh 2010-03-19 20:42:12
添加以下@我的WebPart用户控件的修正问题
<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
我知道这已经被回答,但我要去投入我的$ .02。看起来问题表现为两个条件:(1)使用AJAX异步回发;(2)在页面的<头>中具有多行<标题>元素。
检查您的母版页。如果它有以下几点:
<title>
<sharepointwebcontrols:listitemproperty property="Title" ...>
</title>
...然后将其全部更改为一行,如下所示:
<title><sharepointwebcontrols:listitemproperty property="Title" ...></title>
问题已解决。没有JavaScript要求。
+1:肮脏的解决方法,但有时它必须做... – vitule 2008-12-01 17:18:06
感谢您的答案..我们将propably实施一些类似的JavaScript修复,因为它是不可能为我们硬编码页标题 – drax 2008-12-01 17:59:37