Skip to content
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 · 23 comments
Closed

a标签href跳转问题 #120

TenOneD opened this issue Nov 28, 2015 · 23 comments

Comments

@TenOneD
Copy link

@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
Copy link
Author

@TenOneD TenOneD commented Nov 28, 2015

@Mickey-
Copy link
Contributor

@Mickey- Mickey- commented Nov 29, 2015

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

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

@TenOneD TenOneD commented Nov 30, 2015

thanks

@mingyili
Copy link

@mingyili mingyili commented Dec 10, 2015

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

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

@hjntongji
Copy link

@hjntongji hjntongji commented Dec 14, 2015

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

@nakeu
Copy link

@nakeu nakeu commented Mar 21, 2016

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

@jun888
Copy link

@jun888 jun888 commented May 25, 2016

@mingyili 求方法

@jun888
Copy link

@jun888 jun888 commented May 25, 2016

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

@linsword20
Copy link

@linsword20 linsword20 commented Jun 6, 2016

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

@linsword20
Copy link

@linsword20 linsword20 commented Jun 7, 2016

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

@JSoon
Copy link
Collaborator

@JSoon JSoon commented Jun 7, 2016

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

@baiyunzyy
Copy link

@baiyunzyy baiyunzyy commented Jun 17, 2016

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

@eastian
Copy link

@eastian eastian commented Jul 7, 2016

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

@lovebestbeyond
Copy link

@lovebestbeyond lovebestbeyond commented Aug 1, 2016

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

@fankeke007
Copy link

@fankeke007 fankeke007 commented Sep 21, 2016

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

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

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

@sunhuayu
Copy link

@sunhuayu sunhuayu commented Oct 18, 2016

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

@changbb
Copy link

@changbb changbb commented Apr 25, 2017

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

@jiangjianshuang
Copy link

@jiangjianshuang jiangjianshuang commented Apr 25, 2017

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

@zhangruxiao
Copy link

@zhangruxiao zhangruxiao commented May 9, 2017

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

@ahfychangbb
Copy link

@ahfychangbb ahfychangbb commented May 25, 2017

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

@jiangjianshuang
Copy link

@jiangjianshuang jiangjianshuang commented May 25, 2017

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

@xuming9
Copy link

@xuming9 xuming9 commented Apr 20, 2018

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

@dnvodc
Copy link

@dnvodc dnvodc commented Mar 12, 2019

能不能把你们的 demo 代码上传

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.