一个JS里如何调用另一个JS里的方法?

abz7676 2016-03-15 09:06:41
有两个页面:A.aspx和B.aspx
还有两个JS文件:A.js和B.js


页面B.aspx里加载了B.js
<script src="../Js/B.js"></script>

页面B.aspx中有一个A标签的按钮


<a href="javascript:void(0);" class="btn-all" id="SearchBtn">Search</a>



B.js里的代码:


$(function () {
B.Init();
});

var B={

Init: function ()
{
this.InitEvent();
},

InitEvent: function ()
{
$("a#SearchBtn").bind("click", B.InitSearchData);
}
};




点击B页面的Search按钮之后会触发B.js里的InitSearchData方法,进行查询数据功能(全查询功能)


然后有一个页面A.aspx,加载了A.js
<script src="../Js/A.js"></script>


A.js里的代码:


$(function ()
{
A.Init();
});

var A = {

Init: function ()
{
},

BindList: function (obj)
{
var li = '<li><a href="B.aspx" id="SearchBtn">ABC</a></li>';
}
}



在点击了ABC这个a标签按钮之后,先会从A页面跳转到B页面,然后同时会自动触发B页面的Search按钮,在B页面进行全查询。

也就是说,在点击了ABC的a标签按钮之后,会直接跳转到已经进行过全查询之后的B页面

请问在A.js里的var li = '<li><a href="B.aspx" id="SearchBtn">ABC</a></li>';这段代码应该如何改写来实现效果?
...全文
4035 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
clever101 2017-10-12
  • 打赏
  • 举报
回复
假如a.js中有一个函数,在b.js中如何调用这个函数呢?
abz7676 2016-03-17
  • 打赏
  • 举报
回复
方法会了

具体方法:

在B.js里修改为


$(function () {
B.Init();
});

var B={

Init: function ()
{
if (B.getUrlParam("strType") != null) {
var strType=unescape(location.search.substr(1).match(new RegExp("strType=([^&]*)(&|$)"))[1]);
var reg = new RegExp("%20", "g"); //创建正则RegExp对象
var newstr = strType.replace(reg, " ");
B.具体的方法(newstr);
}
},

getUrlParam: function (name) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象

var r = window.location.search.substr(1).match(reg); //匹配目标参数

if (r != null) return unescape(r[2]); return null; //返回参数值

},
};


然后,A.js里的

var li = '<li><a href="B.aspx?strType=' + escape(TypeName) + '">ABC</a></li>';
abz7676 2016-03-16
  • 打赏
  • 举报
回复
然后,A.js里的

var li = '<li><a href="B.aspx?strType=???" id="SearchBtn">ABC</a></li>';

这段代码应该只需改写为

var li = '<li><a href="B.aspx?strType=???" >ABC</a></li>';

就行了
abz7676 2016-03-16
  • 打赏
  • 举报
回复
方法会了

具体方法:

在B.js里修改为


$(function () {
B.Init();
});

var B={

Init: function ()
{
if (B.getUrlParam("strType") != null) {
var strType= location.search.substr(1).match(new RegExp("strType=([^&]*)(&|$)"))[1];
var reg = new RegExp("%20this%20is%20", "g"); //创建正则RegExp对象
var newstr = strType.replace(reg, "");
B.具体的方法(newstr);
}
},

getUrlParam: function (name) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象

var r = window.location.search.substr(1).match(reg); //匹配目标参数

if (r != null) return unescape(r[2]); return null; //返回参数值

},


};

BitCoffee 2016-03-16
  • 打赏
  • 举报
回复

//获取url中的参数
function getUrlParam(name) {
 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
 var r = window.location.search.substr(1).match(reg); //匹配目标参数
 if (r != null) return unescape(r[2]); return null; //返回参数值
}

$(function () 
  {
    A.Init();
    if(getUrlParam("strType") == ???)
    {
        B.InitSearchData
    }
});
正怒月神 版主 2016-03-16
  • 打赏
  • 举报
回复
那我觉得,楼主跳转的时候,直接让b页面初始化就加载全部,就可以了
  • 打赏
  • 举报
回复
打开的b的url里面多加一个字段,用于b的js判断是否需要立刻执行方法
<a href="B.aspx?strType=???&search=1" id="SearchBtn">
B页面的js里面
$(function () 
  {
    A.Init();
if(判断search标志)
{
//执行查询方法
}
  });
abz7676 2016-03-16
  • 打赏
  • 举报
回复
昨天忘了补充了,A.js里的a标签代码其实是这样的:


var li = '<li><a href="B.aspx?strType=???" id="SearchBtn">ABC</a></li>';

strType=???中的???表示strType的值是一个动态值。 那么这个代码应该怎么写呢?求高手指导。
Justin-Liu 2016-03-16
  • 打赏
  • 举报
回复
好奇怪的需求
abz7676 2016-03-16
  • 打赏
  • 举报
回复
方法会了

具体方法:

在B.js里修改为


$(function () {
B.Init();
});

var B={

Init: function ()
{
if (B.getUrlParam("strType") != null) {
var strType= location.search.substr(1).match(new RegExp("strType=([^&]*)(&|$)"))[1];
strType= strType.substring(3);
var reg = new RegExp("%20", "g"); //创建正则RegExp对象
var newstr = strType.replace(reg, " ");
B.具体的方法(newstr);
}
},

getUrlParam: function (name) {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象

var r = window.location.search.substr(1).match(reg); //匹配目标参数

if (r != null) return unescape(r[2]); return null; //返回参数值

},


};
蓝色风影 2016-03-16
  • 打赏
  • 举报
回复
只要多加一句 $("a#SearchBtn").trigger("click");就可以实现你要的功能 InitEvent: function () { $("a#SearchBtn").bind("click", B.InitSearchData); $("a#SearchBtn").trigger("click"); } };
蓝色风影 2016-03-16
  • 打赏
  • 举报
回复
只要多加一句 $("a#SearchBtn")..trigger("click");就可以实现你要的功能 InitEvent: function () { $("a#SearchBtn").bind("click", B.InitSearchData); $("a#SearchBtn")..trigger("click"); } };
  • 打赏
  • 举报
回复
当加载新的页面,那么新的页面(也就是新的 javascript 客户端应用)中一切都从头开始初始化了! 我只能给你这一步的说明,方便你去学习。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧