js能 重写windon.location吗不让页面跳转,并且获取要跳转的地址

js能 重写windon.location吗不让页面跳转,并且获取要跳转的地址,第1张

跳转的单页应用是可以实现的,如果想简单点就用angularjs之类的框架的路由功能,想自己写的话可以把链接写成锚点链接的形式页面就不会跳转如 <a href='/#index'>首页</index>,然后通过location获得链接信息,用正则表达式提取出参数

用ajax请求啊,给服务器 GET或者POST 当前HTML页面的的URL

我的例子是用的jquery

$get(geturlphp, //GET请求地址

{url : windowlocationhref}, //get请求参数。就相当于 geturlphpurl=>

最近开发中使用的是百度地图android SDK:

1、初始化地图

2、注册定位监听器,初始化Location模块

3、初始化定位图层;启用定位,启用指南针,最后把定位图层添加到地图中。附简单代码:

//mMapView = (MapView) findViewById(RidbmapsView);

mMapView = new MapView(this); //初始化一个mapView 存放Map

mMapViewsetBuiltInZoomControls(true);// 设置启用默认的缩放控件

locationManager = mBMapMangetLocationManager();

/

由于LocationListener获取第一个位置修正的时间会很长,为了避免用户等待,

在LocationListener获取第一个更精确的位置之前,应当使用getLocationInfo() 获取一个缓存的位置

/

Location location = locationManagergetLocationInfo();

locationManagerrequestLocationUpdates(this);

mMapController = mMapViewgetController();// 得到mMapView的控制权,可以用它控制和驱动平移和缩放

if (location != null) {

mMapControllersetCenter(new GeoPoint(

(int) (locationgetLatitude() 1E6), (int) (location

getLongitude() 1E6)));

}

mMapControllersetZoom(12);// 设置地图zoom级别

MyLocationOverlay mylocTest = new MyLocationOverlay(this, mMapView);

mylocTestenableMyLocation();

mylocTestenableCompass();

mMapViewgetOverlays()add(mylocTest);

@Override

public void onLocationChanged(Location location) {

// TODO Auto-generated method stub

if (location != null) {

mMapControlleranimateTo(new GeoPoint(

(int) (locationgetLatitude() 1E6), (int) (location

getLongitude() 1E6)));

}

}

如果你想点击定位地点,显示信息,你需要去扩展MyLocationOverlay图层,它里面有个public boolean onTap(GeoPoint p, MapView map) {}方法,是处理点击事件的。

有问题,可以与我联系,共同探讨。

获取对象指定的文件名或路径。

windowlocationpathname

获取整个 URL 为字符串。

windowlocationhref

设置或获取与 URL 关联的端口号码。

alert(windowlocationport)

获取 URL 的协议部分。

windowlocationprotocol

获取 href 属性中在井号“#”后面的分段。

windowlocationhash

获取 location 或 URL 的 hostname 和 port 号码。

windowlocationhost

获取 href 属性中跟在问号后面的部分。

windowlocationsearch

获取变量的值(截取等号后面的部分)

var url = windowlocationsearch;

var loc = urlsubstring(urllastIndexOf('=')+1, urllength);

开发指南第三章定位信息前半部分的代码实现的功能是:当手机采集的地理位置(经纬度)发生改变时在界面上显示出改变后的经纬度。如果开发过android原生定位程序的开发者应该对这部分代码不陌生,中规中矩,先注册位置监听服务,然后当位置发生改变后出发onLocationChanged()方法。现在请在官网上下载示例代码,导入工程后开启包comamapcnapislocation中的MyLocationjava文件,该文件实现的主要功能是:初始化地图并且实现首次定位,地图会自动移动到定位点,我们一会便要基于这个文件来完成地图自动实时定位的功能。

看到这儿,有人可能想把MyLocation文件中的内容与第三章给出的android原生定位模块简单整合。如果你的解决思路是:在onLocationChanged()方法中企图在地图上绘制出当前的位置,那么就会遇到很大的麻烦。因为如果用高德地图提供的api在地图上绘制定位点的话一定要调用类MyLocationOverlay中的enableMyLocation()方法,根据官方参考资料,这个方法封装了android原生的类LocationManager中的requestLocationUpdates()方法,所以你在写onLocationChanged()方法前一定是已经调用了原生的类LocationManager中的requestLocationUpdates()方法,这样一来造成了LocationManager在没有removeUpdate前又进行了一次requestLocationUpdates,由此造成程序意外退出。

所以还是回到开发指南第三章,好好看看后半部分:如果想让地图跟随当前位置移动,需要继承MyLocationOverlay 并实现其onLocationChanged()方法,调用MapViewgetController()animateTo()方法移动地图位置。官方用户指南上的这句原话正是问题的正解,不过官网实在太坑爹,简简单单几行文字和代码,对于浣熊这种刚刚接触地图开发的小白来说实在是看得一头雾水,还在一阵瞎折腾,终于解决了问题,所以共享出来,希望和我一样的小白能够少走些弯路。

我先把修改后的MyLocationjava文件整个贴出来,在增加或改动的代码前后均表明了注释(不包括包的改动):“/change start/”和"/change end/"

用js 的方法获取:代码如下

设置或获取对象指定的文件名或路径。

alert(windowlocationpathname)

设置或获取整个 URL 为字符串。

alert(windowlocationhref);

设置或获取与 URL 关联的端口号码。

alert(windowlocationport)

设置或获取 URL 的协议部分。

alert(windowlocationprotocol)

设置或获取 href 属性中在井号“#”后面的分段。

alert(windowlocationhash)

设置或获取 location 或 URL 的 hostname 和 port 号码。

alert(windowlocationhost)

设置或获取 href 属性中跟在问号后面的部分。

alert(windowlocationsearch)

获取变量的值(截取等号后面的部分)

var url = windowlocationsearch;

// alert(urllength);

// alert(urllastIndexOf('='));

var loc = urlsubstring(urllastIndexOf('=')+1, urllength);

以上就是关于js能 重写windon.location吗不让页面跳转,并且获取要跳转的地址全部的内容,包括:js能 重写windon.location吗不让页面跳转,并且获取要跳转的地址、用javascript的window.location.href取得地址栏后,如何在PHP里调用呢,新手提问,实在是不会,看了不少网页、android 手机 地图 定位 编程 如何获取 定位的地点 的图片 和 文字 信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10083811.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存