【问题标题】:Trigger OnLoad Javascript in .Net on content page在内容页面上触发 .Net 中的 OnLoad Javascript
【发布时间】:2014-02-19 14:57:32
【问题描述】:

问题:在“内容页面”上加载 Javascript。

我有一些我用

启动的测试 Javascript 代码
<body onload="javascript:SomeFunction()"> 

(具体代码为&lt;body onload="GetMap(); ClickGeocode()"&gt;

但是,我现在想将代码放入具有母版页的 .Net 页面中。我不想做的是在母版页上加载 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>

【问题讨论】:

标签: javascript html asp.net


【解决方案1】:

使用适当的事件或在所需元素已经可用的情况下调用您的代码。

将以下内容添加到文档底部(当然是在&lt;body&gt; 内):

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

&lt;head&gt;&lt;body&gt; 中都可以使用事件:

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

【讨论】:

  • 值得注意的是,IE8 及更低版本不支持DOMContentLoaded 事件。 developer.mozilla.org/en-US/docs/Web/Reference/Events/…
  • 当然是正确的。或者,也可以使用“加载”事件,尽管它稍后会触发。
  • 好的,如果我没看错,我会转到内容页面,然后在最后一个内容区域放置 然后添加 到页眉部分的内容页面还是有两种方法?
  • 理想情况下,Javascript 会最后触发,因为我需要在生成地图之前先获取邮政编码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多