该js中为什么 alert(1);一直不执行?

JavaScript013

该js中为什么 alert(1);一直不执行?,第1张

js 代码是从上往下执行 也就是说 下面的代码会覆盖上面同名的代码

你开始定义了一个叫 getName() 的方法 弹出 alert(1), 声明了方法,没有调用

然后 你写了个 var getName 给他赋值了一个方法 弹出 alert(2)

最后 你调用了这个变量 这个变量 也是个方法 跟上面的 同名了,下面的方法就 优先了 所以 你执行的是 alert(2)

获得页面所有的控件

根据控件的类型,去脚本配置文件匹配对应的脚本文件名,然后输出脚本文件

如果这个脚本文件已经生成那么则不必重复生成

配置文件类似

<?xml version="1.0" encoding="utf-8" ?>

<javascript-reference>

<!-- 脚本文件对应的名称以及路径 -->

<file-name name="Table" src="js/Table.js"></file-name>

<file-name name="Input" src="js/Input.js"></file-name>

<file-name name="ControlUtils" src="js/ControlUtils.js"></file-name>

<file-name name="Utils" src="js/Utils.js"></file-name>

<file-name name="WebUtils" src="js/WebUtils.js"></file-name>

<!-- 脚本关联文件 -->

<file-reference name="Table">

<file-name name="ControlUtils"></file-name>

<file-name name="Utils"></file-name>

<file-name name="WebUtils"></file-name>

</file-reference>

<file-referenct name="Input">

<file-name name="ControlUtils"></file-name>

<file-name name="WebUtils"></file-name>

</file-referenct>

<!--控件-->

<component name="Table" class="" file-name=""></component>

<component name="ProlinkInput" class="" file-name=""></component>

</javascript-reference>

最后能够自动在页面中生成类似

<script language="javascript" src="../js/Math.js" ></script>

<script language="javascript" src="../js/Utils.js"></script>

<script language="javascript" src="../js/DataSource.js"></script>

<SCRIPT language="javascript" src="../js/ControlUtils.js"></SCRIPT>

<script language="javascript" src="../js/Table.js"></script>

<script language="javascript" src="../js/Input.js"></script>

<script language="javascript" src="../js/BtnTextInput.js"></script>

<script language="javascript" src="../js/Label.js"></script>

<script language="javascript" src="../js/Lookup.js"></script>

<script language="javascript" src="../js/Body.js"></script>

<script language="javascript" src="../js/WebUtils.js"></script>

---------------------------------------------------------------

void GetScriptFile(Control c)

{

OutputScriptFile(c)

foreach(Control cc in c.Controls)

GetScriptFile(cc)

}

void OutputScriptFile(Control c)

{

//if (c is Label)

{

string sTypeName = c.GetType().Name

if (!Page.IsClientScriptBlockRegistered(sTypeName))

{

Page.RegisterClientScriptBlock(sTypeName, String.Format("<script language="javascript" src="../js/{0}.js"></script>", sTypeName))

}

}

....

}

GetScriptFile(Page)

or use Page.RegisterClientScriptBlock method or Page.RegisterStartupScript method, make sure you use

1. give different script different key

2. use Page.IsClientScriptBlockRegistered(ScriptKey) or Page.IsStartupScriptRegistered(ScriptKey) to check

is your aspx derived from deriving from CreateClientScriptBlock??

if not, either pass Page object to your static method or use the HttpContext.Current.Handler, for example

namespace ProlinkClass

{

/// <summary>

/// CreateClientScriptBlock 的摘要说明。

/// </summary>

public class CreateClientScriptBlock

{

private Page _page

public CreateClientScriptBlock(Page p)

{

_page = p

}

public CreateClientScriptBlock()

{

_page = (Page)System.Web.HttpContext.Current.Handler

}

public void OutputScripts() { GetScriptFile(_page) }

prviate void GetScriptFile(Control c){

OutputScriptFile(c)

foreach(Control cc in c.Controls){

if (cc.ID != null){

GetScriptFile(cc)

}

}

}

private void OutputScriptFile(Control c){

string sTypeName = c.GetType().Name

string sFileName = ""

if (sTypeName.Equals("Label"))

sFileName = "Label.js"

else if (sTypeName.Equals("TextBox"))

sFileName = "Input.js"

string sScript = "<script language=\"javascript\" src=\"../js/" + sFileName + "\"></script>"

if (!_page.IsClientScriptBlockRegistered(sTypeName)){

_page.RegisterClientScriptBlock(sTypeName,sScript)

}

}

}

}

then do in your aspx code behind:

new ProlinkClass.CreateClientScriptBlock(Page).OutputScripts()

直接操作其他js文件加中的变量进行赋值修改。

1、引入该js文件

2、在当前页面的script中操作该js文件中的变量进行修改。

举例:

1、a.js文件定义一个变量

var a1='1'//该变量在a.js中

2、引入a.js文件

<script type="text/javascript" src="a.js"></script>

3、当前页面操作a1变量

<script>

a1='2'//直接修改a1变量。

</script>