2014-02-19 178 views
0

問題:在加載「內容頁面」時加載Javascript。在內容頁面觸發OnOoad Javascript .net內容頁面

我有我

<body onload="javascript:SomeFunction()"> 

(代碼具體是<body onload="GetMap(); ClickGeocode()">

但是我現在希望把代碼放到具有母版。淨頁推出一些測試JavaScript代碼。我不想做的是在主頁面上加載Javascript,因爲這意味着當我只需要在一個頁面上時,它會加載到每個頁面上。

我試過在這裏和谷歌找到一個解決方案,但不知道的術語! 我曾看過How do I call a JavaScript function on page load?作爲研究的一個例子。

代碼全:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
    <title></title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <script type="text/javascript" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.3"></script> 

<script type="text/javascript"> 

    var map = null; 

    function GetMap() { 
     map = new VEMap('myMap'); 
     map.LoadMap(); 

    } 

    function ClickGeocode() { 

     map.Geocode(document.getElementById('<%= txtQuery.ClientID %>').value, findCallback); 
    } 

    function findCallback(layer, findResults, placeResults, moreResults, error) { 
     var s = ''; 
     if (placeResults) { 
      for (var i = 0; i < placeResults.length; ++i) { 
       s += 'Name: ' + placeResults[i].Name + '\n'; 
       s += 'LatLong: ' + placeResults[i].LatLong + '\n'; 
       s += 'MatchCode: ' + placeResults[i].MatchCode + '\n'; 
       s += 'MatchConfidence: ' + placeResults[i].MatchConfidence + '\n'; 
       s += '\n\n'; 
      } 
     } 
     else { 
      // Code was an error! 
      // Do something else! 
     // console.log(error); 
     } 

    } 
</script> 
    </head> 
    <body onload="GetMap(); ClickGeocode()"> 

     <div id='myMap' style="position:relative; width:400px; height:400px;"></div>  

    <form runat="server"> 
     <asp:TextBox ID="txtQuery" runat="server" text="Postcode Here" /> 

     </form> 
    </body> 
</html> 
+0

你的示例代碼不顯示您在問題中提到的內容,只顯示單個頁面,而不顯示母版頁和內容頁面。 – Nunners

+0

這可能會有所幫助:http://stackoverflow.com/questions/1235985/attach-a-body-onload-event-with-js – Nunners

回答

2

使用正確的事件或致電代碼中所需的元素已經上市。

以下內容添加到文檔的底部(當然裏面的<body>):

<script type="text/javascript"> 
    myFunction(); 
</script> 

使用的事件,可能在這兩個<head><body>

<script type="text/javascript"> 
    document.addEventListener("DOMContentLoaded", myFunction, false); 
</script> 
+1

值得關注的是IE8,下不支持'DOMContentLoaded'事件。 https://developer.mozilla.org/en-US/docs/Web/Reference/Events/DOMContentLoaded – Nunners

+0

也就是說,當然是正確的。或者,也可以使用「加載」事件,儘管它稍後會被觸發。 –

+0

好吧,如果我正確地閱讀它,我會進入內容頁面,並放在最後一個內容區域,我把它放在然後添加<腳本類型= 「文本/ JavaScript的」> document.addEventListener( 「DOMContentLoaded」,myFunction的,假); 要在標題部分的內容頁面還是兩種方法來做呢? – indofraiser