我在我们的网站上遇到了一个问题,就在几天前谷歌地图不再显示了。
以下是指向不起作用的网页的两个链接:
link 1 - 项目详情页面
link 2 - 项目类别页面
它们都使用相同类型的代码,并且在一天前工作得很好。
上次无效是因为有人没有在lat长坐标部分插入正确的数字类型。
如果有人遇到同样的问题,这是代码。请参阅下面的答案(谢谢Jonathan Kuhn!)
<script type="text/javascript">
Shadowbox.init({
// let's skip the automatic setup because we don't have any
// properly configured link elements on the page
skipSetup: true
});
<?php
session_start();
if (empty($_SESSION['count'])) {
$_SESSION['count'] = 1;
}
else {
$_SESSION['count']++;
}
?>
window.onload = function() {
// open a welcome message as soon as the window loads
<?php
if ($_SESSION['count'] == 1) {
?>
Shadowbox.open({
content: '<div id="welcome-msg"><p style="padding:4px 30px; margin:4px; color:#fff;">Awesome stories, photos, news, and more on our projects, straight to your inbox.</p><p style="padding:4px 30px; margin:4px; color:#fff;">Enter your e-mail and click Submit to join.</p><form method="post" name="newsletter" action="include/newsletter_submit.php" onsubmit="return validateForm_newsletter()" style="padding:10px 30px;"><input type="text" name="email_address" class="newsletter_textbox"> <input type="submit" name="button" class="newsletter_button" value="Submit" style="margin-top:10px;"><p style="padding:18px 15px; margin:4px; color:#fff;">You can also enter your e-mail at the bottom of our homepage.</p></form></div>',
player: "html",
title: "Get our friendly updates!",
height: 250,
width: 350
});
<?php } ?>
};
</script>
答案 0 :(得分:1)
我相信你正在覆盖通常运行初始化函数的body onload,其中window.onload运行一个空函数。查看第一个链接的来源,在第69行左右,您有:
window.onload = function() {
// open a welcome message as soon as the window loads
};
我认为它会覆盖body标签中的onload。在firebug控制台中,如果你运行document.body.onload.toString()
,它会显示空函数,注释和所有。
编辑以添加示例包装函数:
//make a temporary empty function
var tmp=function(){};
//check if there is an onload function already
if(window.onload && typeof window.onload == 'function'){
//make tmp the onload function
tmp=window.onload;
}
window.onload=function(){
//call the original onload function
tmp.apply(this, arguments);
//do something else for shadowbox
}
基本上我所做的就是检查是否已经存在window.onload,如果存在,则将该函数保存到临时变量中。然后分配一个调用temp函数的新window.onload。我使用Function.apply传入window.onload接收的任何参数,这些参数可能因浏览器而异,但这可以确保temp函数将获得原始函数所能获得的所有相同参数。