Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript/Google地图导致PIE.htc错误_Javascript_Google Maps - Fatal编程技术网

Javascript/Google地图导致PIE.htc错误

Javascript/Google地图导致PIE.htc错误,javascript,google-maps,Javascript,Google Maps,全部,, 我有以下代码: <script type="text/javascript"> function Store( lat, long, text ) { this.latitude = lat; this.longitude = long; this.html = text; } var myStores = [<?php echo $jsData;?>, null]; addLoadEvent(loadMap); $lat = $po

全部,, 我有以下代码:

<script type="text/javascript">
function Store( lat, long, text )
{
    this.latitude = lat;
    this.longitude = long;
    this.html = text;
}

var myStores = [<?php echo $jsData;?>, null];
addLoadEvent(loadMap);
$lat = $post->latitude;
$long = $post->longitude;
$post_id = $post->ID;
$get_post_info = get_post($post_id); 
$name = $get_post_info->post_title;
$jsData = $jsData . "new Store( $lat, $long, '$name' ),\n";
我的页面在没有javascript部分的情况下可以正常加载。但是,当我添加javascript时,会出现以下错误:

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; MS-RTC LM 8; AskTbAD2/5.14.1.20007) Timestamp: Wed, 22 Feb 2012 16:45:35 UTC Message: Arg: Illegal input string in Vector2D Line: 68 Char: 63 Code: 0 URI: http://localhost/wordpress/wp-content/themes/parallelus-mingle/assets/css/PIE.htc 以下是addLoadEvent(loadMap)的完整代码:


函数addLoadEvent(func){
var oldonload=window.onload;
if(typeof window.onload!=“function”){
window.onload=func
}否则{
window.onload=函数(){
oldonload();
func();
}
}
}
var映射,
infowin=newgoogle.maps.InfoWindow({content:'moin});
函数loadMap()
{
map=新建google.maps.map(
document.getElementById('map'),
{   
缩放:12,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:新google.maps.LatLng(,
)
});
addPoints(myStores);
}
函数添加点(点)
{  
var bounds=new google.maps.LatLngBounds();
对于(var p=0;p

知道这会导致错误的原因吗?

您的
addLoadEvent()
似乎没有正常工作,正在将
loadMap()
的空参数列表发送到PIE.htc onload event方法。另外,我相信函数的
typeof
实际上会返回
object
而不是
function
。无论哪种方式,请尝试删除此函数以代替函数:

function addLoadEvent(func) { 
    if (window.addEventListener) {
        window.addEventListener('load', func, false);
    } else if(window.attachEvent) {
        window.attachEvent('onload', func);
    }
}
另一种方法是使用jQuery的
$(document).ready()
,或其他类似方法,以确保它能在所有浏览器中工作

编辑: 此外,这一行:

var myStores = [<?php echo $jsData;?>, null];
var myStores=[,null];

除非您在原始问题中遗漏了一些PHP代码,否则在
null
之前将以两个逗号结束。

您尝试过下载最新版本吗


请参阅:

这是否仅发生在IE8中?您使用的是哪个版本的馅饼?您使用的是哪个版本的谷歌地图API?除了PIE,你还使用了哪些库?@pete它可以在Firefox、Chrome、Safari等浏览器中使用,所以只有IE8。我正在使用PIE的1.0 Beta 3版(至少我的文件中是这么说的)。我在GoogleMapsV3上,我用jQuery,Modenizer来命名几个。你为什么认为我的var myStroes在null之前有两个逗号?我不明白你为什么会这样想?因为这行:
$jsData=$jsData。“新店($lat,$long,$name'),\n”
是的,$lat、$long和name在我的问题中用代码框填充。请注意字符串
$jsData
末尾的逗号,然后看看用PHP将其注入内联javascript的位置:
var myStores=[,null]。看起来会有两个逗号,除非你用一些问题中没有包含的代码去掉其中一个。我的回答中的备用
addLoadEvent
方法是否修复了PIE.htc错误?我没有删除任何内容。我不知道为什么任何逗号都会引起问题。不,addLoadEvent没有解决问题。然而,我确实出去下载了最新的PIE.htc文件,它不再给我一个错误。没关系。。。在我刷新页面之前,您添加了您的评论。很高兴这对你有用。
function addLoadEvent(func) { 
    if (window.addEventListener) {
        window.addEventListener('load', func, false);
    } else if(window.attachEvent) {
        window.attachEvent('onload', func);
    }
}
var myStores = [<?php echo $jsData;?>, null];