解决方案 »
- 请问 prototype 和 __proto__ 有什么不同?
- 求一个正则表达式检查必须是10位的字母,或者字母数字组合,不能是全数字,请高人指点,谢谢
- 求解:Prototype.js里的$A()函数的问题
- 想自己给别人做网站,有难题,教教我,
- ◆鼠标移动时提示的代码
- 怎样修改<td colspan="4" align="center" id="a" ></td>的值
- 如何获取非弹出窗口(浏览器)的大小?
- EasyUI问题求助!!!
- 一个按钮,一个文本框,点击按钮后打开我的电脑对话框,当我选中一个文件打开后,文件路径显示到文本框中去
- 如何在es6中跨页面修改class并保存?
- Ext问题
- 我想实现 打开一个网页。网页上有 自动跳动倒计时的数字。这个用脚本怎么实现呀
大问题一中第2个:
var regText = /(sh|sz)?\d{6}/i;
把后面的g去掉试试
stockLinks[i].attachEvent("onclick",function(){alert("没有绑定的方法");});
这是IE的DOM的用
stockLinks[i].addEventListener("click",function(){alert("没有绑定的方法");},false);
这个写法不好,不兼容Firefox吧另外这个方法也没法将网页中的onclick方法也一起执行,达不到要求
stockLinks[i].addEventListener("click",function(){alert("没有绑定的方法");},false);
这个不是兼容FF吗?至于网页中的无法执行,看下面列子:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<SCRIPT LANGUAGE="JavaScript">
<!--
function ff(){
var a = document.getElementById('dd');
a.attachEvent("onclick",function(){alert("没有绑定的方法");});
}
//-->
</SCRIPT>
</HEAD> <BODY onload="ff()">
<a id="dd" href="javascript:;" onclick="alert('123');">123</a>
</BODY>
</HTML>
=======================
那大侠问题二,有好的现有写法吗?
var a = document.getElementById('dd');
var tempHandler = a.onclick;
a.onclick = function(){alert("没有绑定的方法");}
a.attachEvent("onclick",tempHandler);
}
第二个问题:
是想把服务的传过来的值赋值给var userPass吗?
可以用Ajax获取赋值完了直接return userPass;
var userPass; 在这个方法内实现userPass跨域请求 并赋值。 }
另外用了你的这个addEventListener 或兼容IE的 ,发觉非常困难传递 stockLinks[i].innerHTML的 值作为参数传递这个该怎么处理才好
是没有值吗?需要对IE FF做判断的function f(){
var a = document.getElementById('dd');
var tempHandler = a.onclick;
a.onclick = function(){alert("没有绑定的方法");}
try{
// 如果是IE
a.attachEvent("onclick",tempHandler);
}catch(e){
// 出错就运行这里
a.addEventListener("click",tempHandler,false);
}
alert(a.innerHTML)
}另外,对于跨域请求网上搜一下应该有很多的 Ajax也可以的
获取到值就可以了你那个跨越请求地址是什么?
var currentStock =null;
stockLinks[i].attachEvent(this.eventName, function () {
currentStock =需要绑定的那个链接a的innerHTML,可是无法传递进来,会语法错误,要怎么改??
StockWarnHelper.showUserPanel()
});
另外跨域也不是特别难,就是怎么在我说的function(){
跨域请求 时候给这个方法内的参数赋值 这个太麻烦了
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<SCRIPT LANGUAGE="JavaScript">
<!--
function ff(){
var a = document.getElementById('dd');
var tempHandler = a.onclick;
a.onclick = f1;
try{
a.attachEvent("onclick",f2);
}catch(e){
a.addEventListener("click",f2,false);
} // 用闭包来实现传参
function f1(){
alert2(a)
}
// 同样用闭包,为了能够访问a
function f2(){
alert(a.innerHTML + ' in f2()');
}
}
// 网页上的alert2
function alert2(a){
alert(a.innerHTML + ' in alert2()')
}
//-->
</SCRIPT>
</HEAD> <BODY onload="ff()">
<a id="dd" href="javascript:;" onclick="alert2(this);">123</a>
</BODY>
</HTML>就是怎么在我说的function(){
跨域请求 时候给这个方法内的参数赋值 这个太麻烦了
}这个问题,不能用全局变量吗?
var pass = 22;
function getUserPass(){
var userPass = pass;// 这样
}
能自己百度谷歌是件好事情,懂的一些JavaScript的基本原理就不难了
var pass = 22;
function getUserPass(){
var userPass = pass;// 这样
}
============================
可能我真没描述好跨域那个问题,好,我再仔细举例描述下,您懂得php 或asp 或 .net吗?我下面就以.net来说明
客户端html页面假设需要实现 将 某个股票名称,通过跨域方式提交到远程服务器查询并得到对应的股票代码,<html>
<script language="javascript">
function getStockID()
{
var stockid;
var stockname=document.getElementById("stockname").value();
AjaxHelper.getData(stockname);
//这边我要针对stockid进行页面相关处理,必须对stockid赋值,但按这种跨域请求无法赋值}
//以下为跨域方式的ajax请求方法
var _ = function(tag) {
return document.createElement(tag);
}
var Util = {
scriptCount: 0,
getData: function(stockname) {
var loader = _("script");
loader.type = "text/javascript";
loader.language = "javascript";
loader.charset = "utf-8";
loader.id = "scriptLoader_" + Util.scriptCount;
loader.src = src.replace("&list=", "Util.delScriptLoader('" + Util.scriptCount + "');&list="); if (document.getElementById("scriptLoader")) {
document.getElementById("scriptLoader").appendChild(loader);
Util.scriptCount++;
}
},
delScriptLoader: function() {
for (var id = 0; id < 10; id++) {
if (document.getElementById("scriptLoader_" + id)) {
document.getElementById("scriptLoader_" + id).parentNode.removeChild(document.getElementById("scriptLoader_" + id));
}
}
},
getRandomNumber: function() {
var date = new Date();
return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()) + Math.random().toString().replace(".", "");
}
}var AjaxHelper={
url:http://www.xxx.com/pageHandler.ashx?stockName=@stockName&rn=@rn,
getScript:function(stockname){
var sourceUrl=this.url.replace("@rn",Util.getRandomNumber()).replace("@stockName",stockname);
Util.getData(sourceUrl);
}
}
</script>
<input type="text" value=" 请输入股票名称“ id="stockname"></input> <input type="button" onclick="getStockID();"/></html>
================>
服务器端的程序处理[ http://www.xxx.com/pageHandler.ashx?stockName=招商银行 ]就返回:
var SERVERSTOCKID="SH600036";
楼主用C#,既然这样,不兜圈子,后台跨域,传值到前台,或者前台调用后台的结果。
得到以后就这样:var s = "var SERVERSTOCKID=\"SH600036\"";
eval(s)
alert(SERVERSTOCKID)
我知道这样直接调用,但我是想做成 20楼代码 function getStockID()
{
var stockid; //给这个赋值????????
AjaxHelper.getData(stockname,function(stockid){
//外部传递方法到内部处理?????
});
}
这样该如何改造这个方法??