New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

a标签href跳转问题 #120

Closed
TenOneD opened this Issue Nov 28, 2015 · 22 comments

Comments

Projects
None yet
@TenOneD

TenOneD commented Nov 28, 2015

如果A标签设置了href假设跳转到/hello这个url,如果在hello这个URL那里有js初始化执行的操作不能生效,而如果将href替换成onclick="window.location.href=/hello"则可以,但是这样子框架的跳转过渡效果就没有了,请问这个问题是我有什么操作地方不到位吗
附上初始化href过去初始化的js代码
$(function() {
'use strict';
$(document).on("pageInit", "#page-infinite-scroll", function(e, id, page) {
var loading = false;
function loadAnswers(pageNum) {
...
}
function loadQuestions(pageNum) {
...
}
function loadUsers(pageNum) {
...
}
// 预先加载10条
loadAnswers(1);
loadQuestions(1);
loadUsers(1);
// 注册'infinite'事件处理函数
$(page).on('infinite', function() {
// 如果正在加载,则退出
if (loading)
return;
// 设置flag
loading = true;
// 添加新条目
if($("#answers").css('display') != 'none'){
var pageNum = $("#answerPageNum").val();
var totalPage = $("#answerTotalPage").val();
if(parseInt(pageNum) >= parseInt(totalPage)){
loading = false;
return;
}
loadAnswers(parseInt(pageNum)+1);
}
if($("#questions").css('display') != 'none'){
var pageNum = $("#questionPageNum").val();
var totalPage = $("#questionTotalPage").val();
if(parseInt(pageNum) >= parseInt(totalPage)){
loading = false;
return;
}
loadQuestions(parseInt(pageNum)+1);
}
if($("#users").css('display') != 'none'){
var pageNum = $("#userPageNum").val();
var totalPage = $("#userTotalPage").val();
if(parseInt(pageNum) >= parseInt(totalPage)){
loading = false;
return;
}
loadUsers(parseInt(pageNum)+1);
}
});
});
$.init();
});

@TenOneD

This comment has been minimized.

Show comment
Hide comment

TenOneD commented Nov 28, 2015

@Mickey-

This comment has been minimized.

Show comment
Hide comment
@Mickey-

Mickey- Nov 29, 2015

Contributor

非入口页的html文档被Router异步加载入当前页时,新页里的<script>标签会因为浏览器安全策略忽略。目前方案有几个:

  1. 在入口页里配置map映射各个后续流程页,通过JS脚步动态异步加载后续流程的JS
  2. 本地开发时,以CommonJS规范将后续流程页的逻辑都打包编译到入口页JS中,大致是$ele.on('pageInit', '#ajaxPageId', fn)这种形式。这种情况JS只加载一个,适合各个后续页的逻辑不是特别复杂的场景。
Contributor

Mickey- commented Nov 29, 2015

非入口页的html文档被Router异步加载入当前页时,新页里的<script>标签会因为浏览器安全策略忽略。目前方案有几个:

  1. 在入口页里配置map映射各个后续流程页,通过JS脚步动态异步加载后续流程的JS
  2. 本地开发时,以CommonJS规范将后续流程页的逻辑都打包编译到入口页JS中,大致是$ele.on('pageInit', '#ajaxPageId', fn)这种形式。这种情况JS只加载一个,适合各个后续页的逻辑不是特别复杂的场景。
@TenOneD

This comment has been minimized.

Show comment
Hide comment
@TenOneD

TenOneD commented Nov 30, 2015

thanks

@mingyili

This comment has been minimized.

Show comment
Hide comment
@mingyili

mingyili Dec 10, 2015

感觉用现有SUI框架写,一种是把script标签写到page div 里面,--呵呵,但如果zepto库不是在顶部加载,$是不管用的;
另一种是异步加载,我现在用的是sea.js异步加载,js和css都是异步的,把要加载的文件标记到page上

,pageInit的时候再通过传过来的page获取要加载的文件 page.data('js/css') ,再用sea进行异步加载....

mingyili commented Dec 10, 2015

感觉用现有SUI框架写,一种是把script标签写到page div 里面,--呵呵,但如果zepto库不是在顶部加载,$是不管用的;
另一种是异步加载,我现在用的是sea.js异步加载,js和css都是异步的,把要加载的文件标记到page上

,pageInit的时候再通过传过来的page获取要加载的文件 page.data('js/css') ,再用sea进行异步加载....

@hjntongji

This comment has been minimized.

Show comment
Hide comment
@hjntongji

hjntongji Dec 14, 2015

@Mickey- 方案1在入口页里配置map映射各个后续流程页,通过JS脚步动态异步加载后续流程的JS。 具体如何实现。

hjntongji commented Dec 14, 2015

@Mickey- 方案1在入口页里配置map映射各个后续流程页,通过JS脚步动态异步加载后续流程的JS。 具体如何实现。

@nakeu

This comment has been minimized.

Show comment
Hide comment
@nakeu

nakeu Mar 21, 2016

a链接ajax路由跳转 提示加载失败 又强行跳转到设置的链接了

nakeu commented Mar 21, 2016

a链接ajax路由跳转 提示加载失败 又强行跳转到设置的链接了

@jun888

This comment has been minimized.

Show comment
Hide comment
@jun888

jun888 commented May 25, 2016

@mingyili 求方法

@jun888

This comment has been minimized.

Show comment
Hide comment
@jun888

jun888 May 25, 2016

@mingyili 用sea.js那要把 sm.js 这个js变成 模块化吗?

jun888 commented May 25, 2016

@mingyili 用sea.js那要把 sm.js 这个js变成 模块化吗?

@linsword20

This comment has been minimized.

Show comment
Hide comment
@linsword20

linsword20 Jun 6, 2016

@mingyili 能请教下您的模块化吗

linsword20 commented Jun 6, 2016

@mingyili 能请教下您的模块化吗

@linsword20

This comment has been minimized.

Show comment
Hide comment
@linsword20

linsword20 Jun 7, 2016

使用路由方式加载 另外的页面 公共css是否不需要重新加载 会使用原来那一份?

linsword20 commented Jun 7, 2016

使用路由方式加载 另外的页面 公共css是否不需要重新加载 会使用原来那一份?

@JSoon

This comment has been minimized.

Show comment
Hide comment
@JSoon

JSoon Jun 7, 2016

Collaborator

路由加载只会动态更新.page中的内容,so yes

Collaborator

JSoon commented Jun 7, 2016

路由加载只会动态更新.page中的内容,so yes

@baiyunzyy

This comment has been minimized.

Show comment
Hide comment
@baiyunzyy

baiyunzyy Jun 17, 2016

a标签href跳转后样式不加载,请问是什么情况,用的是sm.min.css里的公共样式啊

baiyunzyy commented Jun 17, 2016

a标签href跳转后样式不加载,请问是什么情况,用的是sm.min.css里的公共样式啊

@eastian

This comment has been minimized.

Show comment
Hide comment
@eastian

eastian Jul 7, 2016

放在 .page-group 里面的script并不会被忽略

eastian commented Jul 7, 2016

放在 .page-group 里面的script并不会被忽略

@lovebestbeyond

This comment has been minimized.

Show comment
Hide comment
@lovebestbeyond

lovebestbeyond Aug 1, 2016

我在微信中跳转每个链接都是加了external,跳转是没有问题的。但是在微信中返回里上一个页面的js初始化都无效了,这是什么问题。
@Mickey-

lovebestbeyond commented Aug 1, 2016

我在微信中跳转每个链接都是加了external,跳转是没有问题的。但是在微信中返回里上一个页面的js初始化都无效了,这是什么问题。
@Mickey-

@fankeke007

This comment has been minimized.

Show comment
Hide comment
@fankeke007

fankeke007 Sep 21, 2016

查看SUI的demo就可以知道怎么处理js不加载问题。案例里很多页面都用到了demo.js。
里面一般这样处理:

$(document).on("pageInit", "#pageId", function(e, id, page) {
      //业务逻辑
})

这样页面初始化时就会把相关js执行一遍。

fankeke007 commented Sep 21, 2016

查看SUI的demo就可以知道怎么处理js不加载问题。案例里很多页面都用到了demo.js。
里面一般这样处理:

$(document).on("pageInit", "#pageId", function(e, id, page) {
      //业务逻辑
})

这样页面初始化时就会把相关js执行一遍。

@sunhuayu

This comment has been minimized.

Show comment
Hide comment
@sunhuayu

sunhuayu Oct 18, 2016

这么关闭页面跳转时的push动画?真正的tabbar切换页面的时候是没有push动画的。

sunhuayu commented Oct 18, 2016

这么关闭页面跳转时的push动画?真正的tabbar切换页面的时候是没有push动画的。

@changbb

This comment has been minimized.

Show comment
Hide comment
@changbb

changbb Apr 25, 2017

a页面跳转到b b页面打开popup没反应怎么解决啊?求大神

changbb commented Apr 25, 2017

a页面跳转到b b页面打开popup没反应怎么解决啊?求大神

@jiangjianshuang

This comment has been minimized.

Show comment
Hide comment
@jiangjianshuang

jiangjianshuang Apr 25, 2017

采用seajs 配置页面,当打开B页面的时候,独立加载一个js 在这个 js 里面做其它任何事件

jiangjianshuang commented Apr 25, 2017

采用seajs 配置页面,当打开B页面的时候,独立加载一个js 在这个 js 里面做其它任何事件

@zhangruxiao

This comment has been minimized.

Show comment
Hide comment
@zhangruxiao

zhangruxiao May 9, 2017

当修改css后把页面切换的动画时间改为0ms后,在safari上pageinit事件不会触发

zhangruxiao commented May 9, 2017

当修改css后把页面切换的动画时间改为0ms后,在safari上pageinit事件不会触发

@ahfychangbb

This comment has been minimized.

Show comment
Hide comment
@ahfychangbb

ahfychangbb May 25, 2017

A路由跳转到B 再返回A A里面的js就失效了 怎么解决啊

ahfychangbb commented May 25, 2017

A路由跳转到B 再返回A A里面的js就失效了 怎么解决啊

@jiangjianshuang

This comment has been minimized.

Show comment
Hide comment
@jiangjianshuang

jiangjianshuang May 25, 2017

不会失效的,你在A页面_$(document).on("pageInit", "#page-help", function(e, id, page) {
doSearch();
}); 这个 doSearch() 方法写进去,回来会触发pageInit,自然回来的页面js 不会失效

jiangjianshuang commented May 25, 2017

不会失效的,你在A页面_$(document).on("pageInit", "#page-help", function(e, id, page) {
doSearch();
}); 这个 doSearch() 方法写进去,回来会触发pageInit,自然回来的页面js 不会失效

@xuming9

This comment has been minimized.

Show comment
Hide comment
@xuming9

xuming9 Apr 20, 2018

图片浏览器,只能点1次回退,怎么破

xuming9 commented Apr 20, 2018

图片浏览器,只能点1次回退,怎么破

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment