如何在body标签中初始化Google地图?

3
我正在一个页面中实现Google Maps。我知道需要在 <body> 标签中添加 onload=”initialize()” onunload=”GUnload()”,但我不确定如何添加。
目前,在我的页面中,我已经粘贴了以下内容:
<body onload="initialize()" onunload="GUnload()">
  <p>To Add your Google Map you must first plot your address by searching</p>
  <p>
    <input id="address" type="textbox" value="" placeholder="Search For Your Address">
    <input type="button" value="Plot Your Address" onclick="codeAddress()">
  </p>
  <div id="map_canvas" style="width: 770px; height: 270px; border: 5px solid #EDEDED">
  </div>
</body>

尽管这个方法实际上可行,但它的标记一定很糟糕,因为它是主页面内的一个正文部分中的正文部分。
我正在使用 WordPress,但我不确定上述标记是否可以,或者我是否应将其放在主页 body 标签中。问题是如果需要这样做,我不知道该怎么办。由于我只需要在一个页面上而不是整个站点上使用它,我不想将其添加到站点的 body 标签中,以初始化 Google 地图并减慢网站速度。
感谢您提供的任何建议。
1个回答

1
不,你不想在使用地图的特定页面模板中添加另一个body标签。你的开头标签将在header.php中,你应该获取要加载它的特定页面的页面ID,然后执行;
<body <?php if (is_page(374)) { echo 'onload="initialize()" onunload="GUnload()"'; } ?>>

header.php

这将把该代码添加到(在我的情况下)第374页。

要查找页面ID,只需在后端的“页面”部分悬停在其上,您就可以在链接URL中看到ID。

对于多个页面,您将使用;

<body <?php if (is_page(array(374,375))) { echo 'onload="initialize()" onunload="GUnload()"'; } ?>>

你也可以使用slug或标题代替ID,但是这些很容易被客户更改,从而导致代码失效。这里是有关is_page的codex链接;

http://codex.wordpress.org/Function_Reference/is_page


太棒了,感谢你的帮助。如果我需要获取第374页和第375页,我只需要用逗号将它们分开吗?(is_page(374, 375)) - Redwall
哦,我刚刚检查了一下我的body标签,发现它已经有一个类了。我猜你上面写的代码就是在这个类后面加上<body <?php body_class(); ?>> - Redwall
是的,没错 - 我也已经更新了多页答案。 - McNab
嗨,抱歉来回打扰,但我刚刚将这段代码放入我的header.php中,当我加载相关页面时,什么也没有加载。这是我插入的代码<body <?php body_class(); ?> <?php if (is_page(array(1974,1685)) { echo 'onload="initialize()" onunload="GUnload()"'; } ?>> 你有什么想法吗?它可能出了什么问题? - Redwall
我害怕这是“白屏死亡”问题。我已经在Firebug中检查过了,没有任何东西被加载,因此源代码为空。我在控制台中看到了一个500错误,但仅此而已。 - Redwall
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接