问题:在“内容页面”上加载Javascript。
我有一些我用
启动的测试Javascript代码<body onload="javascript:SomeFunction()">
(特定代码为<body onload="GetMap(); ClickGeocode()">
)
但是我现在想把代码放到一个包含母版页的.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>
答案 0 :(得分:2)
使用适当的事件或在已有必要元素的情况下调用您的代码。
将以下内容添加到文档的底部(当然在<body>
内):
<script type="text/javascript">
myFunction();
</script>
可以在<head>
和<body>
中使用事件:
<script type="text/javascript">
document.addEventListener("DOMContentLoaded", myFunction, false);
</script>