public const string EntityName = "Request"; //请求实体 internal static string Parse(string stlEntity, PageInfo pageInfo, ContextInfo contextInfo) { var parsedContent = string.Empty; try { var entityName = StlParserUtility.GetNameFromEntity(stlEntity); var entityValue = StlParserUtility.GetValueFromEntity(stlEntity); var attributeName = entityName.Substring(9, entityName.Length - 10); var ajaxDivId = StlParserUtility.GetAjaxDivId(pageInfo.UniqueId); string functionName = $"stlRequest_{ajaxDivId}"; parsedContent = $@"<span id=""{ajaxDivId}""></span>"; var builder = new StringBuilder(); builder.Append($@" <script type=""text/javascript"" language=""javascript""> $(function(){{ try {{ var queryString = document.location.search; if (queryString == null || queryString.length <= 1) return; var reg = new RegExp(""(^|&){attributeName}=([^&]*)(&|$)""); var r = queryString.substring(1).match(reg); var v = decodeURI(decodeURI(r[2])); if (r) $(""#{ajaxDivId}"").html(v);"); if (!string.IsNullOrEmpty(entityValue)) { builder.Append($@" if (r) $(""#{entityValue}"").val(v);"); } builder.Append(@" }}catch(e){{}} }}); </script> "); pageInfo.AddPageEndScriptsIfNotExists(functionName, builder.ToString()); } catch { // ignored } return(parsedContent); }
public static void ParseStl(PublishmentSystemInfo publishmentSystemInfo, PageInfo pageInfo, ContextInfo contextInfo, StringBuilder contentBuilder, string filePath, bool isDynamic) { if (contentBuilder.Length > 0) { StlParserManager.ParseTemplateContent(contentBuilder, pageInfo, contextInfo); } if (EFileSystemTypeUtils.IsHtml(PathUtils.GetExtension(filePath))) { if (pageInfo.TemplateInfo.TemplateType != ETemplateType.FileTemplate) { AddSeoMetaToContent(pageInfo, contentBuilder); } AddAdvertisementsToContent(pageInfo); if (isDynamic) { var pageUrl = PageUtils.AddProtocolToUrl(PageUtility.GetPublishmentSystemUrlByPhysicalPath(publishmentSystemInfo, filePath)); string templateString = $@" <base href=""{pageUrl}"" />"; StringUtils.InsertAfter(new[] { "<head>", "<HEAD>" }, contentBuilder, templateString); } if (pageInfo.PublishmentSystemInfo.Additional.IsCreateBrowserNoCache) { const string templateString = @" <META HTTP-EQUIV=""Pragma"" CONTENT=""no-cache""> <META HTTP-EQUIV=""Expires"" CONTENT=""-1"">"; StringUtils.InsertAfter(new[] { "<head>", "<HEAD>" }, contentBuilder, templateString); } if (pageInfo.PublishmentSystemInfo.Additional.IsCreateIe8Compatible) { const string templateString = @" <META HTTP-EQUIV=""x-ua-compatible"" CONTENT=""ie=7"" />"; StringUtils.InsertAfter(new[] { "<head>", "<HEAD>" }, contentBuilder, templateString); } if (pageInfo.PublishmentSystemInfo.Additional.IsCreateJsIgnoreError) { const string templateString = @" <script type=""text/javascript"">window.onerror=function(){return true;}</script>"; StringUtils.InsertAfter(new[] { "<head>", "<HEAD>" }, contentBuilder, templateString); } if (pageInfo.PageContentId > 0 && pageInfo.PublishmentSystemInfo.Additional.IsCountHits && !pageInfo.IsPageScriptsExists(PageInfo.JsAdStlCountHits)) { pageInfo.AddPageEndScriptsIfNotExists(PageInfo.JsAdStlCountHits, $@" <script src=""{ActionsAddContentHits.GetUrl(pageInfo.ApiUrl, pageInfo.PublishmentSystemId, pageInfo.PageNodeId, pageInfo.PageContentId)}"" type=""text/javascript""></script>"); } if (pageInfo.PublishmentSystemInfo.Additional.IsTracker && !pageInfo.IsPageScriptsExists(PageInfo.JsAdAddTracker)) { pageInfo.AddPageEndScriptsIfNotExists(PageInfo.JsAdAddTracker, $@" <script src=""{SiteFilesAssets.Tracker.GetScriptUrl(pageInfo.ApiUrl)}"" type=""text/javascript""></script> <script type=""text/javascript"">AddTrackerCount('{ActionsAddTrackerCount.GetUrl(pageInfo.ApiUrl, pageInfo.PublishmentSystemId, pageInfo.PageNodeId, pageInfo.PageContentId)}', {pageInfo.PublishmentSystemId});</script>"); } var headScripts = StlParserManager.GetPageInfoHeadScript(pageInfo, contextInfo); if (!string.IsNullOrEmpty(headScripts)) { if (contentBuilder.ToString().IndexOf("</head>", StringComparison.Ordinal) != -1 || contentBuilder.ToString().IndexOf("</HEAD>", StringComparison.Ordinal) != -1) { StringUtils.InsertBefore(new[] { "</head>", "</HEAD>" }, contentBuilder, headScripts); } else { contentBuilder.Insert(0, headScripts); } } var afterBodyScripts = StlParserManager.GetPageInfoScript(pageInfo, true); if (!string.IsNullOrEmpty(afterBodyScripts)) { if (contentBuilder.ToString().IndexOf("<body", StringComparison.Ordinal) != -1 || contentBuilder.ToString().IndexOf("<BODY", StringComparison.Ordinal) != -1) { var index = contentBuilder.ToString().IndexOf("<body", StringComparison.Ordinal); if (index == -1) { index = contentBuilder.ToString().IndexOf("<BODY", StringComparison.Ordinal); } index = contentBuilder.ToString().IndexOf(">", index, StringComparison.Ordinal); contentBuilder.Insert(index + 1, StringUtils.Constants.ReturnAndNewline + afterBodyScripts + StringUtils.Constants.ReturnAndNewline); } else { contentBuilder.Insert(0, afterBodyScripts); } } var beforeBodyScripts = StlParserManager.GetPageInfoScript(pageInfo, false); if (!string.IsNullOrEmpty(beforeBodyScripts)) { if (contentBuilder.ToString().IndexOf("</body>", StringComparison.Ordinal) != -1 || contentBuilder.ToString().IndexOf("</BODY>", StringComparison.Ordinal) != -1) { var index = contentBuilder.ToString().IndexOf("</body>", StringComparison.Ordinal); if (index == -1) { index = contentBuilder.ToString().IndexOf("</BODY>", StringComparison.Ordinal); } contentBuilder.Insert(index, StringUtils.Constants.ReturnAndNewline + beforeBodyScripts + StringUtils.Constants.ReturnAndNewline); } else { contentBuilder.Append(beforeBodyScripts); } } if (pageInfo.PublishmentSystemInfo.Additional.IsCreateDoubleClick) { var fileTemplateId = 0; if (pageInfo.TemplateInfo.TemplateType == ETemplateType.FileTemplate) { fileTemplateId = pageInfo.TemplateInfo.TemplateId; } var ajaxUrl = ActionsTrigger.GetUrl(pageInfo.PublishmentSystemInfo.Additional.ApiUrl, pageInfo.PublishmentSystemId, contextInfo.ChannelID, contextInfo.ContentID, fileTemplateId, true); pageInfo.AddPageEndScriptsIfNotExists("CreateDoubleClick", $@" <script type=""text/javascript"" language=""javascript"">document.ondblclick=function(x){{location.href = '{ajaxUrl}';}}</script>"); } if (pageInfo.PageEndScriptKeys.Count > 0) { var endScriptBuilder = new StringBuilder(); foreach (string scriptKey in pageInfo.PageEndScriptKeys) { endScriptBuilder.Append(pageInfo.GetPageEndScripts(scriptKey)); } endScriptBuilder.Append(StringUtils.Constants.ReturnAndNewline); //contentBuilder.Append(endScriptBuilder.ToString()); //StringUtils.InsertBeforeOrAppend(new string[] { "</body>", "</BODY>" }, contentBuilder, endScriptBuilder.ToString()); StringUtils.InsertAfterOrAppend(new[] { "</html>", "</html>" }, contentBuilder, endScriptBuilder.ToString()); } if (pageInfo.PublishmentSystemInfo.Additional.IsCreateShowPageInfo) { contentBuilder.Append($@" <!-- {pageInfo.TemplateInfo.RelatedFileName}({ETemplateTypeUtils.GetText(pageInfo.TemplateInfo.TemplateType)}) -->"); } } }
private static void AddAdvertisementsToContent(PageInfo pageInfo) { if (IsAdvertisementExists(pageInfo)) { var advertisementNameArrayList = DataProvider.AdvertisementDao.GetAdvertisementNameArrayList(pageInfo.PublishmentSystemId); foreach (string advertisementName in advertisementNameArrayList) { var adInfo = DataProvider.AdvertisementDao.GetAdvertisementInfo(advertisementName, pageInfo.PublishmentSystemId); if (adInfo.IsDateLimited) { if (DateTime.Now < adInfo.StartDate || DateTime.Now > adInfo.EndDate) { continue; } } var isToDo = false; if (pageInfo.TemplateInfo.TemplateType == ETemplateType.IndexPageTemplate || pageInfo.TemplateInfo.TemplateType == ETemplateType.ChannelTemplate) { if (!string.IsNullOrEmpty(adInfo.NodeIDCollectionToChannel)) { var nodeIdArrayList = TranslateUtils.StringCollectionToIntList(adInfo.NodeIDCollectionToChannel); if (nodeIdArrayList.Contains(pageInfo.PageNodeId)) { isToDo = true; } } } else if (pageInfo.TemplateInfo.TemplateType == ETemplateType.ContentTemplate) { if (!string.IsNullOrEmpty(adInfo.NodeIDCollectionToContent)) { var nodeIdArrayList = TranslateUtils.StringCollectionToIntList(adInfo.NodeIDCollectionToContent); if (nodeIdArrayList.Contains(pageInfo.PageContentId)) { isToDo = true; } } } else if (pageInfo.TemplateInfo.TemplateType == ETemplateType.FileTemplate) { if (!string.IsNullOrEmpty(adInfo.FileTemplateIDCollection)) { var fileTemplateIdArrayList = TranslateUtils.StringCollectionToIntList(adInfo.FileTemplateIDCollection); if (fileTemplateIdArrayList.Contains(pageInfo.TemplateInfo.TemplateId)) { isToDo = true; } } } if (isToDo) { var scripts = string.Empty; if (adInfo.AdvertisementType == EAdvertisementType.FloatImage) { pageInfo.AddPageScriptsIfNotExists(PageInfo.JsStaticAdFloating); var floatScript = new FloatingScript(pageInfo.PublishmentSystemInfo, pageInfo.UniqueId, adInfo); scripts = floatScript.GetScript(); } else if (adInfo.AdvertisementType == EAdvertisementType.ScreenDown) { pageInfo.AddPageScriptsIfNotExists(PageInfo.Components.Jquery); var screenDownScript = new ScreenDownScript(pageInfo.PublishmentSystemInfo, pageInfo.UniqueId, adInfo); scripts = screenDownScript.GetScript(); } else if (adInfo.AdvertisementType == EAdvertisementType.OpenWindow) { var openWindowScript = new OpenWindowScript(pageInfo.PublishmentSystemInfo, pageInfo.UniqueId, adInfo); scripts = openWindowScript.GetScript(); } pageInfo.AddPageEndScriptsIfNotExists(EAdvertisementTypeUtils.GetValue(adInfo.AdvertisementType) + "_" + adInfo.AdvertisementName, scripts); } } } }
public static void Parse(SiteInfo siteInfo, PageInfo pageInfo, ContextInfo contextInfo, StringBuilder contentBuilder, string filePath, bool isDynamic) { foreach (var service in PluginManager.Services) { try { service.OnBeforeStlParse(new ParseEventArgs(pageInfo.SiteId, pageInfo.PageChannelId, pageInfo.PageContentId, pageInfo.TemplateInfo.TemplateType, pageInfo.TemplateInfo.Id, filePath, contentBuilder)); } catch (Exception ex) { LogUtils.AddPluginErrorLog(service.PluginId, ex, nameof(service.OnBeforeStlParse)); } } if (contentBuilder.Length > 0) { StlParserManager.ParseTemplateContent(contentBuilder, pageInfo, contextInfo); } if (EFileSystemTypeUtils.IsHtml(PathUtils.GetExtension(filePath))) { if (isDynamic) { var pageUrl = PageUtils.AddProtocolToUrl(PageUtils.ParseNavigationUrl($"~/{PathUtils.GetPathDifference(WebConfigUtils.PhysicalApplicationPath, filePath)}")); string templateString = $@" <base href=""{pageUrl}"" />"; StringUtils.InsertAfter(new[] { "<head>", "<HEAD>" }, contentBuilder, templateString); } if (pageInfo.SiteInfo.Additional.IsCreateBrowserNoCache) { const string templateString = @" <META HTTP-EQUIV=""Pragma"" CONTENT=""no-cache""> <META HTTP-EQUIV=""Expires"" CONTENT=""-1"">"; StringUtils.InsertAfter(new[] { "<head>", "<HEAD>" }, contentBuilder, templateString); } if (pageInfo.SiteInfo.Additional.IsCreateIe8Compatible) { const string templateString = @" <META HTTP-EQUIV=""x-ua-compatible"" CONTENT=""ie=7"" />"; StringUtils.InsertAfter(new[] { "<head>", "<HEAD>" }, contentBuilder, templateString); } if (pageInfo.SiteInfo.Additional.IsCreateJsIgnoreError) { const string templateString = @" <script type=""text/javascript"">window.onerror=function(){return true;}</script>"; StringUtils.InsertAfter(new[] { "<head>", "<HEAD>" }, contentBuilder, templateString); } if (pageInfo.PageContentId > 0 && pageInfo.SiteInfo.Additional.IsCountHits && !pageInfo.IsPageScriptsExists(PageInfo.Const.JsAdStlCountHits)) { pageInfo.AddPageEndScriptsIfNotExists(PageInfo.Const.JsAdStlCountHits, $@" <script src=""{ApiRouteActionsAddContentHits.GetUrl(pageInfo.ApiUrl, pageInfo.SiteId, pageInfo.PageChannelId, pageInfo.PageContentId)}"" type=""text/javascript""></script>"); } var isShowPageInfo = pageInfo.SiteInfo.Additional.IsCreateShowPageInfo; if (!pageInfo.IsLocal) { if (pageInfo.SiteInfo.Additional.IsCreateDoubleClick) { var fileTemplateId = 0; if (pageInfo.TemplateInfo.TemplateType == TemplateType.FileTemplate) { fileTemplateId = pageInfo.TemplateInfo.Id; } var apiUrl = pageInfo.ApiUrl; var ajaxUrl = ApiRouteActionsTrigger.GetUrl(apiUrl, pageInfo.SiteId, contextInfo.ChannelId, contextInfo.ContentId, fileTemplateId, true); pageInfo.AddPageEndScriptsIfNotExists("CreateDoubleClick", $@" <script type=""text/javascript"" language=""javascript"">document.ondblclick=function(x){{location.href = '{ajaxUrl}&returnUrl=' + encodeURIComponent(location.search);}}</script>"); } } else { isShowPageInfo = true; } if (isShowPageInfo) { contentBuilder.Append($@" <!-- {pageInfo.TemplateInfo.RelatedFileName}({TemplateTypeUtils.GetText(pageInfo.TemplateInfo.TemplateType)}) -->"); } var headScripts = StlParserManager.GetPageInfoHeadScript(pageInfo, contextInfo); if (!string.IsNullOrEmpty(headScripts)) { if (contentBuilder.ToString().IndexOf("</head>", StringComparison.Ordinal) != -1 || contentBuilder.ToString().IndexOf("</HEAD>", StringComparison.Ordinal) != -1) { StringUtils.InsertBefore(new[] { "</head>", "</HEAD>" }, contentBuilder, headScripts); } else { contentBuilder.Insert(0, headScripts); } } var afterBodyScripts = StlParserManager.GetPageInfoScript(pageInfo, true); if (!string.IsNullOrEmpty(afterBodyScripts)) { if (contentBuilder.ToString().IndexOf("<body", StringComparison.Ordinal) != -1 || contentBuilder.ToString().IndexOf("<BODY", StringComparison.Ordinal) != -1) { var index = contentBuilder.ToString().IndexOf("<body", StringComparison.Ordinal); if (index == -1) { index = contentBuilder.ToString().IndexOf("<BODY", StringComparison.Ordinal); } index = contentBuilder.ToString().IndexOf(">", index, StringComparison.Ordinal); contentBuilder.Insert(index + 1, StringUtils.Constants.ReturnAndNewline + afterBodyScripts + StringUtils.Constants.ReturnAndNewline); } else { contentBuilder.Insert(0, afterBodyScripts); } } var beforeBodyScripts = StlParserManager.GetPageInfoScript(pageInfo, false); if (!string.IsNullOrEmpty(beforeBodyScripts)) { if (contentBuilder.ToString().IndexOf("</body>", StringComparison.Ordinal) != -1 || contentBuilder.ToString().IndexOf("</BODY>", StringComparison.Ordinal) != -1) { var index = contentBuilder.ToString().IndexOf("</body>", StringComparison.Ordinal); if (index == -1) { index = contentBuilder.ToString().IndexOf("</BODY>", StringComparison.Ordinal); } contentBuilder.Insert(index, StringUtils.Constants.ReturnAndNewline + beforeBodyScripts + StringUtils.Constants.ReturnAndNewline); } else { contentBuilder.Append(beforeBodyScripts); } } if (pageInfo.PageEndScriptKeys.Count > 0) { var endScriptBuilder = new StringBuilder(); foreach (string scriptKey in pageInfo.PageEndScriptKeys) { endScriptBuilder.Append(pageInfo.GetPageEndScripts(scriptKey)); } endScriptBuilder.Append(StringUtils.Constants.ReturnAndNewline); //contentBuilder.Append(endScriptBuilder.ToString()); //StringUtils.InsertBeforeOrAppend(new string[] { "</body>", "</BODY>" }, contentBuilder, endScriptBuilder.ToString()); StringUtils.InsertAfterOrAppend(new[] { "</html>", "</html>" }, contentBuilder, endScriptBuilder.ToString()); } } foreach (var service in PluginManager.Services) { try { service.OnAfterStlParse(new ParseEventArgs(pageInfo.SiteId, pageInfo.PageChannelId, pageInfo.PageContentId, pageInfo.TemplateInfo.TemplateType, pageInfo.TemplateInfo.Id, filePath, contentBuilder)); } catch (Exception ex) { LogUtils.AddPluginErrorLog(service.PluginId, ex, nameof(service.OnAfterStlParse)); } } }
private static string ParseImpl(PageInfo pageInfo, ContextInfo contextInfo, XmlNode node, NameValueCollection attributes, string type, string returnUrl) { var stlAnchor = new HtmlAnchor(); foreach (string attributeName in attributes.Keys) { stlAnchor.Attributes.Add(attributeName, attributes[attributeName]); } var url = PageUtils.UnclickedUrl; var onclick = string.Empty; var innerBuilder = new StringBuilder(node.InnerXml); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); stlAnchor.InnerHtml = innerBuilder.ToString(); //计算动作开始 if (!string.IsNullOrEmpty(type)) { if (StringUtils.EqualsIgnoreCase(type, TypeLogin)) { if (string.IsNullOrEmpty(returnUrl)) { returnUrl = StlUtility.GetStlCurrentUrl(pageInfo, contextInfo.ChannelId, contextInfo.ContentId, contextInfo.ContentInfo); } url = HomeUtils.GetLoginUrl(pageInfo.HomeUrl, returnUrl); } else if (StringUtils.EqualsIgnoreCase(type, TypeRegister)) { if (string.IsNullOrEmpty(returnUrl)) { returnUrl = StlUtility.GetStlCurrentUrl(pageInfo, contextInfo.ChannelId, contextInfo.ContentId, contextInfo.ContentInfo); } url = HomeUtils.GetRegisterUrl(pageInfo.HomeUrl, returnUrl); } else if (StringUtils.EqualsIgnoreCase(type, TypeLogout)) { if (string.IsNullOrEmpty(returnUrl)) { returnUrl = StlUtility.GetStlCurrentUrl(pageInfo, contextInfo.ChannelId, contextInfo.ContentId, contextInfo.ContentInfo); } url = HomeUtils.GetLogoutUrl(pageInfo.HomeUrl, returnUrl); } else if (StringUtils.EqualsIgnoreCase(type, TypeAddFavorite)) { pageInfo.SetPageScripts(TypeAddFavorite, @" <script type=""text/javascript""> function AddFavorite(){ if (document.all) { window.external.addFavorite(window.location.href, document.title); } else if (window.sidebar) { window.sidebar.addPanel(document.title, window.location.href, """"); } } </script> ", true); stlAnchor.Attributes["onclick"] = "AddFavorite();"; } else if (StringUtils.EqualsIgnoreCase(type, TypeSetHomePage)) { url = pageInfo.PublishmentSystemInfo.PublishmentSystemUrl; pageInfo.AddPageEndScriptsIfNotExists(TypeAddFavorite, $@" <script type=""text/javascript""> function SetHomepage(){{ if (document.all) {{ document.body.style.behavior = 'url(#default#homepage)'; document.body.setHomePage(""{url}""); }} else if (window.sidebar) {{ if (window.netscape) {{ try {{ netscape.security.PrivilegeManager.enablePrivilege(""UniversalXPConnect""); }} catch(e) {{ alert(""该操作被浏览器拒绝,如果想启用该功能,请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true""); }} }} var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch); prefs.setCharPref('browser.startup.homepage', ""{url}""); }} }} </script> "); stlAnchor.Attributes["onclick"] = "SetHomepage();"; } else if (StringUtils.EqualsIgnoreCase(type, TypeTranslate)) { pageInfo.AddPageScriptsIfNotExists(PageInfo.JsAhTranslate); var msgToTraditionalChinese = "繁體"; var msgToSimplifiedChinese = "简体"; if (!string.IsNullOrEmpty(stlAnchor.InnerHtml)) { if (stlAnchor.InnerHtml.IndexOf(",", StringComparison.Ordinal) != -1) { msgToTraditionalChinese = stlAnchor.InnerHtml.Substring(0, stlAnchor.InnerHtml.IndexOf(",", StringComparison.Ordinal)); msgToSimplifiedChinese = stlAnchor.InnerHtml.Substring(stlAnchor.InnerHtml.IndexOf(",", StringComparison.Ordinal) + 1); } else { msgToTraditionalChinese = stlAnchor.InnerHtml; } } stlAnchor.InnerHtml = msgToTraditionalChinese; if (string.IsNullOrEmpty(stlAnchor.ID)) { stlAnchor.ID = "translateLink"; } pageInfo.SetPageEndScripts(TypeTranslate, $@" <script type=""text/javascript""> var defaultEncoding = 0; var translateDelay = 0; var cookieDomain = ""/""; var msgToTraditionalChinese = ""{msgToTraditionalChinese}""; var msgToSimplifiedChinese = ""{msgToSimplifiedChinese}""; var translateButtonId = ""{stlAnchor.ClientID}""; translateInitilization(); </script> "); } else if (StringUtils.EqualsIgnoreCase(type, TypeClose)) { url = "javascript:window.close()"; } } //计算动作结束 stlAnchor.HRef = url; if (!string.IsNullOrEmpty(onclick)) { stlAnchor.Attributes.Add("onclick", onclick); } return(ControlUtils.GetControlRenderHtml(stlAnchor)); }
private static string ParseImpl(PageInfo pageInfo, string scrollHtml, int scrollDelay, string direction, string width, string height) { string topHtml; string bottomHtml; string scripts; if (string.IsNullOrEmpty(height) && direction == DirectionVertical) { height = "height:120px;"; } var uniqueId = "Marquee_" + pageInfo.UniqueId; if (direction.Equals(DirectionVertical)) { topHtml = $@" <div id=""uniqueID_1"" style=""overflow: hidden; {width} {height}""><div id=""uniqueID_2"" align=""left"">"; bottomHtml = @"</div><div id=""uniqueID_3""></div></div>"; scripts = $@" <script language=javascript> var uniqueID_isMar = true; var uniqueID_1=document.getElementById(""uniqueID_1""); var uniqueID_2=document.getElementById(""uniqueID_2""); var uniqueID_3=document.getElementById(""uniqueID_3""); if (uniqueID_1.style.pixelHeight){{ uniqueID_isMar = uniqueID_2.offsetHeight > uniqueID_1.style.pixelHeight; }}else{{ var uniqueID_height = parseInt(uniqueID_1.style.height.replace('%', '').replace('px', '')); uniqueID_isMar = uniqueID_2.offsetHeight > uniqueID_height; }} if (uniqueID_isMar){{ uniqueID_3.innerHTML=uniqueID_2.innerHTML; function uniqueID_function(){{ <!--if(uniqueID_3.offsetTop-uniqueID_1.scrollTop<=0)--> if(uniqueID_2.offsetHeight*2==uniqueID_1.scrollTop+uniqueID_1.offsetHeight) uniqueID_1.scrollTop-=uniqueID_2.offsetHeight; else{{ uniqueID_1.scrollTop++ }} }} var uniqueID_myMar=setInterval(uniqueID_function,{scrollDelay}); uniqueID_1.onmouseover=function() {{clearInterval(uniqueID_myMar)}} uniqueID_1.onmouseout=function() {{uniqueID_myMar=setInterval(uniqueID_function,{scrollDelay})}} }} </script>"; } else { topHtml = $@" <div id=uniqueID_1 style=""OVERFLOW: hidden; {width} {height}""><table cellpadding=0 align=left border=0 cellspace=0><tr><td id=uniqueID_2 nowrap=""nowrap"">"; bottomHtml = @"</td><td id=uniqueID_3 nowrap=""nowrap""></td></tr></table></div>"; scripts = $@" <script language=javascript> var uniqueID_isMar = true; var uniqueID_1=document.getElementById(""uniqueID_1""); var uniqueID_2=document.getElementById(""uniqueID_2""); var uniqueID_3=document.getElementById(""uniqueID_3""); if (uniqueID_1.style.pixelWidth){{ uniqueID_isMar = uniqueID_2.offsetWidth > uniqueID_1.style.pixelWidth; }}else{{ var uniqueID_width = parseInt(uniqueID_1.style.width.replace('%', '').replace('px', '')); uniqueID_isMar = uniqueID_2.offsetWidth > uniqueID_width; }} if (uniqueID_isMar){{ function uniqueID_function(){{ uniqueID_3.innerHTML=uniqueID_2.innerHTML; <!--if(uniqueID_3.offsetLeft-uniqueID_1.scrollLeft<=0)--> if(uniqueID_2.offsetWidth*2+1==uniqueID_1.scrollLeft+uniqueID_1.offsetWidth ) uniqueID_1.scrollLeft-=uniqueID_2.offsetWidth; else{{ uniqueID_1.scrollLeft++ }} }} var uniqueID_myMar=setInterval(uniqueID_function,{scrollDelay}); uniqueID_1.onmouseover=function() {{clearInterval(uniqueID_myMar)}} uniqueID_1.onmouseout=function() {{uniqueID_myMar=setInterval(uniqueID_function,{scrollDelay})}} }} </script>"; } pageInfo.AddPageEndScriptsIfNotExists(ElementName + uniqueId, scripts.Replace("uniqueID", uniqueId)); return(topHtml.Replace("uniqueID", uniqueId) + scrollHtml + bottomHtml.Replace("uniqueID", uniqueId)); }