不会叫foo

时间:2012-03-04 17:57:41

标签: javascript jquery asp.net

我正在尝试运行此代码,但不会调用initialize()。

http://jsfiddle.net/r3sA8/

有人能说出原因吗?

3 个答案:

答案 0 :(得分:7)

当标记设置了<script>属性时,不评估src块内的代码。

替换以下内容:

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyCP_o3czlByfGNa-S1YYMBAqfYKNg5nRKU&sensor=false"
    type="text/javascript">
    var map;
    var geocoder;
    ...

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyCP_o3czlByfGNa-S1YYMBAqfYKNg5nRKU&sensor=false"></script>
<script>
    var map;
    var geocoder;
    ...

(关闭<script src="...">标记,并使用<script>启动新的脚本块。

答案 1 :(得分:2)

错误是

  

未捕获的ReferenceError:未定义initialize。

如果script元素具有src元素,就像您的示例一样,浏览器不评估其内容。

解决方案是将代码放在自己的脚本标记中:

<script src="..."></script>
<script>
    // your code here
</script>

关于jsFiddle的附注:您应该只在HTML窗格中放入body的内容。并且jsFiddle当然不能评估特殊的asp标签。

答案 2 :(得分:1)

除了像其他人提到的那样创建新的script块之外,您还没有结束initialize功能。

function initialize() {
            if (GBrowserIsCompatible()) {
                map = new GMap2(document.getElementById("map"));
                map.setCenter(new GLatLng(51.5, -0.1), 10);
                map.setUIToDefault();

                geocoder = new GClientGeocoder();

                showAddressOnLoad("28 Gronemann Street, Tel Aviv, Israel");
            }
.
.
.

您应该有另一个}来结束您的功能。见this updated jsFiddle