Consider the following scenario. You use Windows Internet Explorer 7 to browse to a Microsoft Windows SharePoint Services 3.0 site or to a Microsoft Office SharePoint Server 2007 site. The SharePoint site is located in the Internet zone. Additionally, the SharePoint site has online presence enabled. When you browse to the SharePoint site, you receive the following message in the Information bar in Internet Explorer 7:
The Web site wants to run the following add-on: 'Name ActiveX Control' from 'Microsoft Corporation'. If you trust the Web site and the add-on and want to allow it to run, click here...
The Problem
This issue occurs if the Name ActiveX control (Name.dll) is not added to the list of preapproved controls in Internet Explorer 7. The Name ActiveX control is included in the 2007 Microsoft Office system.
Microsoft however gives you a couple of client-side work around methods:
- Add the SharePoint site to the Trusted Sites list in Internet Explorer 7 on the Windows client computer.
- Add a registry subkey to the Windows client computer.
- Configure the master page of the SharePoint site on the front-end Web server.
(Please browse to http://support.microsoft.com/kb/931509 for more information about above methods.)
Unfortunatly Microsoft tells you to commend a few javascript functions. Correcting the problem this way may cause new problems though. Some other feature, method etc. can trie to use one of these methods and cause a javascript error.
Instead of removing the whole functions from the DOM, commend only the lines of code in these functions. Other features, methods etc., can still access the function, but does nothing, instead of causing more problem.
An other thing I don't prefer is changing the masterpage, because Microsoft notes there solution maight not always works.
This changes the method into the following steps:
If the SharePoint site does not require online presence, configure the master page of the SharePoint site to use the InitNoPresence.js file. To do this, follow these steps:
- Copy the contents of the Init.js file to the Backup Init.js file on the front-end Web server.
i Note! The Init.js file is located in the Drive:\Program Files\Common Files\Microsoft Shared\Web server extensions\12\Template\Layouts\1043 folder. (or 1033 ;-) - Start Notepad, and then open the Init.js file.
- In the Init.js file, locate the following line of code.
function ProcessImn()
{
if (EnsureIMNControl() && IMNControlObj.PresenceEnabled)
{
imnElems=document.getElementsByName("imnmark");
imnElemsCount=imnElems.length;
ProcessImnMarkers();
}
}
function ProcessImnMarkers()
{
for (i=0;i<imnMarkerBatchSize;++i)
{
if (imnCount==imnElemsCount)
return;
IMNRC(imnElems[imnCount].sip,imnElems[imnCount]);
imnCount++;
}
setTimeout("ProcessImnMarkers()",imnMarkerBatchDelay);
} - Replace the code that you located in step 1c with the following lines of code.
function ProcessImn()
{
/* if (EnsureIMNControl() && IMNControlObj.PresenceEnabled)
{
imnElems=document.getElementsByName("imnmark");
imnElemsCount=imnElems.length;
ProcessImnMarkers();
}*/
}
function ProcessImnMarkers()
{
/* for (i=0;i<imnMarkerBatchSize;++i)
{
if (imnCount==imnElemsCount)
return;
IMNRC(imnElems[imnCount].sip,imnElems[imnCount]);
imnCount++;
}
setTimeout("ProcessImnMarkers()",imnMarkerBatchDelay);*/
}
No comments:
Post a Comment