0

このコードは、次の Silverlight アプリケーションにありdefault.aspxます。

<head id="Head1" runat="server">   
  <link id="link1" rel="shortcut icon" href="favicon1.ico" type="image/vnd.microsoft.icon" />
  <title id="Title1" >hello</title>

href="favicon2.ico"クエリ文字列が変更されたときに、JavaScript でを変更する必要があります。

私はこれを書き込もうとしましたが、うまくいきません:

<script type="text/javascript">
  if( Request.QueryString ("user"). Equals("true", StringComparison.OrdinalIgnoreCase)) {
    document.title="hi user"; 
    document.getElementById('link1').href = ('favicon2.ico');
  }
</script>
</head>
</html>
4

2 に答える 2

0

コードでこれを置き換えてみてください

document.getElementById('link1').href = "favicon2.ico";
于 2013-06-11T11:17:11.297 に答える
0

JavaScript関数を追加

function getParameterByName(name) {
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
        results = regex.exec(location.search);
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

コードを純粋な JavaScript として変更します (C# と JavaScript を混在させています)

if(getParameterByName("user").toLowerCase() == "true")
{
   document.title="hi user"; 

   var newImage = new Image();
   newImage.src = 'favicon2.ico?_=' + new Date().getTime();
   document.getElementById('link1').href = newImage.src;    
}

アップデート:

if(getParameterByName("user").toLowerCase() == "true")
{
   document.title="hi user"; 
   changeFavicon('favicon2.ico');
}

function changeFavicon(src) {
var link = document.createElement('link'),
oldLink = document.getElementById('link1');
link.id = 'link1';
link.rel = 'shortcut icon';
link.href = src;
if (oldLink) {
    document.getElementsByTagName('head')[0].removeChild(oldLink);
}
document.getElementsByTagName('head')[0].appendChild(link);
}
于 2013-06-11T11:22:28.160 に答える