腾讯的迷你门户首页新闻用到的Silverlight技术引用
?
騰訊的迷你門戶首頁新聞 用到的Silverlight技術引用:
<script type="text/javascript" src="/Silverlight.js"></script>
調用:
<!--div id="SilverlightControlHost1" style="position:absolute;width:143px;height:21px;top:0px;left:0px;z-index:100;"></div-->
<!-- Modified By e-Crusade -->
<a href="http://news.qq.com/photo.shtml" target="_blank"><img src="http://img1.gtimg.com/news/pics/21922/21922968.jpg"></a><span id="linkme"><a href="http://news.qq.com/photo.shtml" target="_blank">國慶慶典場地開始布置</a></span><!--[if !IE]>|xGv00|1cd013e88fad2b485a31ed8cff4e7efc<![endif]-->
</div>
腳本:
<script>
function sl(v){???????????????????????????????? //SIVERLIGHT效果,頁卡為新聞時用
if(v=="新聞" && Silverlight.isInstalled("2.0")){
var linkshow = $("linkme").innerHTML;
document.getElementById("slcote").innerHTML = '<div class="slwarp" id="SLTitle1">'+linkshow+'</div><object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="145" height="21" id="slme" class="slinside"><param name="source" value="/js/SLMiniSite.xap"/><param name="minRuntimeVersion" value="2.0.31005.0" /><param name="isWindowless" value="true" /><param name="background" value="transparent" /><param name="windowless" value="true" /><param name="autoUpgrade" value="true" /></object>';
}else{
document.getElementById("slcote").innerHTML ='';
}
}
</script>
JS:
if (!window.Silverlight)
{
??? window.Silverlight = { };
}
// Silverlight control instance counter for memory mgt
Silverlight._silverlightCount = 0;
Silverlight.fwlinkRoot='http://go2.microsoft.com/fwlink/?LinkID=';
Silverlight.onGetSilverlight = null;
Silverlight.onSilverlightInstalled = function () {window.location.reload(false);};
//
// isInstalled, checks to see if the correct version is installed
//
Silverlight.isInstalled = function(version)
{
??? var isVersionSupported=false;
??? var container = null;
???
??? try
??? {
??????? var control = null;
???????
??????? try
??????? {
??????????? control = new ActiveXObject('AgControl.AgControl');
??????????? if ( version == null )
??????????? {
??????????????? isVersionSupported = true;
??????????? }
??????????? else if ( control.IsVersionSupported(version) )
??????????? {
??????????????? isVersionSupported = true;
??????????? }
??????????? control = null;
??????? }
??????? catch (e)
??????? {
??????????? var plugin = navigator.plugins["Silverlight Plug-In"] ;
??????????? if ( plugin )
??????????? {
??????????????? if ( version === null )
??????????????? {
??????????????????? isVersionSupported = true;
??????????????? }
??????????????? else
??????????????? {
??????????????????? var actualVer = plugin.description;
??????????????????? if ( actualVer === "1.0.30226.2")
??????????????????????? actualVer = "2.0.30226.2";
??????????????????? var actualVerArray =actualVer.split(".");
??????????????????? while ( actualVerArray.length > 3)
??????????????????? {
??????????????????????? actualVerArray.pop();
??????????????????? }
??????????????????? while ( actualVerArray.length < 4)
??????????????????? {
??????????????????????? actualVerArray.push(0);
??????????????????? }
??????????????????? var reqVerArray = version.split(".");
??????????????????? while ( reqVerArray.length > 4)
??????????????????? {
??????????????????????? reqVerArray.pop();
??????????????????? }
???????????????????
??????????????????? var requiredVersionPart ;
??????????????????? var actualVersionPart
??????????????????? var index = 0;
???????????????????
???????????????????
??????????????????? do
??????????????????? {
??????????????????????? requiredVersionPart = parseInt(reqVerArray[index]);
??????????????????????? actualVersionPart = parseInt(actualVerArray[index]);
??????????????????????? index++;
??????????????????? }
??????????????????? while (index < reqVerArray.length && requiredVersionPart ===
actualVersionPart);
???????????????????
??????????????????? if ( requiredVersionPart <= actualVersionPart && !isNaN(requiredVersionPart) )
??????????????????? {
??????????????????????? isVersionSupported = true;
??????????????????? }
??????????????? }
??????????? }
??????? }
??? }
??? catch (e)
??? {
??????? isVersionSupported = false;
??? }
??? if (container)
??? {
??????? document.body.removeChild(container);
??? }
???
??? return isVersionSupported;
}
Silverlight.WaitForInstallCompletion = function()
{
??? if ( ! Silverlight.isBrowserRestartRequired && Silverlight.onSilverlightInstalled )
??? {
??????? try
??????? {
??????????? navigator.plugins.refresh();
??????? }
??????? catch(e)
??????? {
??????? }
??????? if ( Silverlight.isInstalled(null) )
??????? {
??????????? Silverlight.onSilverlightInstalled();
??????? }
??????? else
??????? {
????????????? setTimeout(Silverlight.WaitForInstallCompletion, 3000);
??????? }???
??? }
}
Silverlight.__startup = function()
{
??? Silverlight.isBrowserRestartRequired = Silverlight.isInstalled(null);//(!window.ActiveXObject
|| Silverlight.isInstalled(null));
??? if ( !Silverlight.isBrowserRestartRequired)
??? {
??????? Silverlight.WaitForInstallCompletion();
??? }
??? if (window.removeEventListener) {
?????? window.removeEventListener('load', Silverlight.__startup , false);
??? }
??? else {
??????? window.detachEvent('onload', Silverlight.__startup );
??? }
}
if (window.addEventListener)
{
??? window.addEventListener('load', Silverlight.__startup , false);
}
else
{
??? window.attachEvent('onload', Silverlight.__startup );
}
///
// createObject(); Params:
// parentElement of type Element, the parent element of the Silverlight Control
// source of type String
// id of type string
// properties of type String, object literal notation { name:value, name:value, name:value},
//???? current properties are: width, height, background, framerate, isWindowless,
enableHtmlAccess, inplaceInstallPrompt: all are of type string
// events of type String, object literal notation { name:value, name:value, name:value},
//???? current events are onLoad onError, both are type string
// initParams of type Object or object literal notation { name:value, name:value, name:value}
// userContext of type Object
/
Silverlight.createObject = function(source, parentElement, id, properties, events, initParams,
userContext)
{
??? var slPluginHelper = new Object();
??? var slProperties = properties;
??? var slEvents = events;
???
??? slPluginHelper.version = slProperties.version;
??? slProperties.source = source;???
??? slPluginHelper.alt = slProperties.alt;
???
??? //rename properties to their tag property names
??? if ( initParams )
??????? slProperties.initParams = initParams;
??? if ( slProperties.isWindowless && !slProperties.windowless)
??????? slProperties.windowless = slProperties.isWindowless;
??? if ( slProperties.framerate && !slProperties.maxFramerate)
??????? slProperties.maxFramerate = slProperties.framerate;
??? if ( id && !slProperties.id)
??????? slProperties.id = id;
???
??? // remove elements which are not to be added to the instantiation tag
??? delete slProperties.ignoreBrowserVer;
??? delete slProperties.inplaceInstallPrompt;
??? delete slProperties.version;
??? delete slProperties.isWindowless;
??? delete slProperties.framerate;
??? delete slProperties.data;
??? delete slProperties.src;
??? delete slProperties.alt;
??? // detect that the correct version of Silverlight is installed, else display install
??? if (Silverlight.isInstalled(slPluginHelper.version))
??? {
??????? //move unknown events to the slProperties array
??????? for (var name in slEvents)
??????? {
??????????? if ( slEvents[name])
??????????? {
??????????????? if ( name == "onLoad" && typeof slEvents[name] == "function" && slEvents
[name].length != 1 )
??????????????? {
??????????????????? var onLoadHandler = slEvents[name];
??????????????????? slEvents[name]=function (sender){ return onLoadHandler
(document.getElementById(id), userContext, sender)};
??????????????? }
??????????????? var handlerName = Silverlight.__getHandlerName(slEvents[name]);
??????????????? if ( handlerName != null )
??????????????? {
??????????????????? slProperties[name] = handlerName;
??????????????????? slEvents[name] = null;
??????????????? }
??????????????? else
??????????????? {
??????????????????? throw "typeof events."+name+" must be 'function' or 'string'";
??????????????? }
??????????? }
??????? }
??????? slPluginHTML = Silverlight.buildHTML(slProperties);
??? }
??? //The control could not be instantiated. Show the installation prompt
??? else
??? {
??????? slPluginHTML = Silverlight.buildPromptHTML(slPluginHelper);
??? }
??? // insert or return the HTML
??? if(parentElement)
??? {
??????? parentElement.innerHTML = slPluginHTML;
??? }
??? else
??? {
??????? return slPluginHTML;
??? }
}
///
//
// create HTML that instantiates the control
//
///
Silverlight.buildHTML = function( slProperties)
{
??? var htmlBuilder = [];
??? htmlBuilder.push('<object type=\"application/x-silverlight\" data="data:application/x-
silverlight,"');
??? if ( slProperties.id != null )
??? {
??????? htmlBuilder.push(' id="' + slProperties.id + '"');
??? }
??? if ( slProperties.width != null )
??? {
??????? htmlBuilder.push(' width="' + slProperties.width+ '"');
??? }
??? if ( slProperties.height != null )
??? {
??????? htmlBuilder.push(' height="' + slProperties.height + '"');
??? }
??? htmlBuilder.push(' >');
???
??? delete slProperties.id;
??? delete slProperties.width;
??? delete slProperties.height;
???
??? for (var name in slProperties)
??? {
??????? if (slProperties[name])
??????? {
??????????? htmlBuilder.push('<param name="'+Silverlight.HtmlAttributeEncode(name)+'"
value="'+Silverlight.HtmlAttributeEncode(slProperties[name])+'" />');
??????? }
??? }
??? htmlBuilder.push('<\/object>');
??? return htmlBuilder.join('');
}
?
// createObjectEx, takes a single parameter of all createObject parameters enclosed in {}
Silverlight.createObjectEx = function(params)
{
??? var parameters = params;
??? var html = Silverlight.createObject(parameters.source, parameters.parentElement,
parameters.id, parameters.properties, parameters.events, parameters.initParams,
parameters.context);
??? if (parameters.parentElement == null)
??? {
??????? return html;
??? }
}
///
// Builds the HTML to prompt the user to download and install Silverlight
///
Silverlight.buildPromptHTML = function(slPluginHelper)
{
??? var slPluginHTML = "";
??? var urlRoot = Silverlight.fwlinkRoot;
??? var shortVer = slPluginHelper.version ;
??? if ( slPluginHelper.alt )
??? {
??????? slPluginHTML = slPluginHelper.alt;
??? }
??? else
??? {
??????? if (! shortVer )
??????? {
??????????? shortVer="";
??????? }
??????? slPluginHTML = "<a href='javascript:Silverlight.getSilverlight(\"{1}\");' style='text-
decoration: none;'><img src='{2}' alt='Get Microsoft Silverlight' style='border-style:
none'/></a>";
??????? slPluginHTML = slPluginHTML.replace('{1}', shortVer );
??????? slPluginHTML = slPluginHTML.replace('{2}', urlRoot + '108181');
??? }
???
??? return slPluginHTML;
}
Silverlight.getSilverlight = function(version)
{
??? if (Silverlight.onGetSilverlight )
??? {
??????? Silverlight.onGetSilverlight();
??? }
???
??? var shortVer = "";
??? var reqVerArray = String(version).split(".");
??? if (reqVerArray.length > 1)
??? {
??????? var majorNum = parseInt(reqVerArray[0] );
??????? if ( isNaN(majorNum) || majorNum < 2 )
??????? {
??????????? shortVer = "1.0";
??????? }
??????? else
??????? {
??????????? shortVer = reqVerArray[0]+'.'+reqVerArray[1];
??????? }
??? }
???
??? var verArg = "";
???
??? if (shortVer.match(/^\d+\056\d+$/) )
??? {
??????? verArg = "&v="+shortVer;
??? }
???
??? Silverlight.followFWLink("114576" + verArg);
}
///
/// Navigates to a url based on fwlinkid
///
Silverlight.followFWLink = function(linkid)
{
??? top.location=Silverlight.fwlinkRoot+String(linkid);
}
?
?
?
?
?
///
/// Encodes special characters in input strings as charcodes
///
Silverlight.HtmlAttributeEncode = function( strInput )
{
????? var kabon;
????? var retVal = '';
??? if(strInput == null)
????? {
????????? return null;
??? }
?????
????? for(var cnt = 0; cnt < strInput.length; cnt++)
????? {
??????????? kabon = strInput.charCodeAt(cnt);
??????????? if (( ( kabon > 96 ) && ( kabon < 123 ) ) ||
????????????????? ( ( kabon > 64 ) && ( kabon < 91 ) ) ||
????????????????? ( ( kabon > 43 ) && ( kabon < 58 ) && (kabon!=47)) ||
????????????????? ( kabon == 95 ))
??????????? {
????????????????? retVal = retVal + String.fromCharCode(kabon);
??????????? }
??????????? else
??????????? {
????????????????? retVal = retVal + '&#' + kabon + ';';
??????????? }
????? }
?????
????? return retVal;
}
///
//
// Default error handling function to be used when a custom error handler is
// not present
//
///
Silverlight.default_error_handler = function (sender, args)
{
??? var iErrorCode;
??? var errorType = args.ErrorType;
??? iErrorCode = args.ErrorCode;
??? var errMsg = "\nSilverlight error message???? \n" ;
??? errMsg += "ErrorCode: "+ iErrorCode + "\n";
??? errMsg += "ErrorType: " + errorType + "?????? \n";
??? errMsg += "Message: " + args.ErrorMessage + "???? \n";
??? if (errorType == "ParserError")
??? {
??????? errMsg += "XamlFile: " + args.xamlFile + "???? \n";
??????? errMsg += "Line: " + args.lineNumber + "???? \n";
??????? errMsg += "Position: " + args.charPosition + "???? \n";
??? }
??? else if (errorType == "RuntimeError")
??? {
??????? if (args.lineNumber != 0)
??????? {
??????????? errMsg += "Line: " + args.lineNumber + "???? \n";
??????????? errMsg += "Position: " + args.charPosition + "???? \n";
??????? }
??????? errMsg += "MethodName: " + args.methodName + "???? \n";
??? }
??? alert (errMsg);
}
///
/// Releases event handler resources when the page is unloaded
///
Silverlight.__cleanup = function ()
{
??? for (var i = Silverlight._silverlightCount - 1; i >= 0; i--) {
??????? window['__slEvent' + i] = null;
??? }
??? Silverlight._silverlightCount = 0;
??? if (window.removeEventListener) {
?????? window.removeEventListener('unload', Silverlight.__cleanup , false);
??? }
??? else {
??????? window.detachEvent('onunload', Silverlight.__cleanup );
??? }
}
///
/// Releases event handler resources when the page is unloaded
///
Silverlight.__getHandlerName = function (handler)
{
??? var handlerName = "";
??? if ( typeof handler == "string")
??? {
??????? handlerName = handler;
??? }
??? else if ( typeof handler == "function" )
??? {
??????? if (Silverlight._silverlightCount == 0)
??????? {
??????????? if (window.addEventListener)
??????????? {
??????????????? window.addEventListener('onunload', Silverlight.__cleanup , false);
??????????? }
??????????? else
??????????? {
??????????????? window.attachEvent('onunload', Silverlight.__cleanup );
??????????? }
??????? }
??????? var count = Silverlight._silverlightCount++;
??????? handlerName = "__slEvent"+count;
???????
??????? window[handlerName]=handler;
??? }
??? else
??? {
??????? handlerName = null;
??? }
??? return handlerName;
}/* |xGv00|66e74a524a319070fc813e2675d1e51e */
?
總結
以上是生活随笔為你收集整理的腾讯的迷你门户首页新闻用到的Silverlight技术引用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mp4什么牌子适合学生
- 下一篇: 安装mp3插件