从外部JavaScript文件中,我需要检查IsPostBack
(ASP.NET页面)。以下是我在Google上搜寻后发现:检查外部JavaScript文件中的IsPostBack
var isPostBack = <%= Page.IsPostBack ? "true" : "false" %>;
但<%=
%>
似乎并不在外部JS文件得到认可。如果是这样,那么备用解决方案是什么?
从外部JavaScript文件中,我需要检查IsPostBack
(ASP.NET页面)。以下是我在Google上搜寻后发现:检查外部JavaScript文件中的IsPostBack
var isPostBack = <%= Page.IsPostBack ? "true" : "false" %>;
但<%=
%>
似乎并不在外部JS文件得到认可。如果是这样,那么备用解决方案是什么?
您将无法从外部文件执行此操作。即使可以,外部文件也会缓存在客户端的浏览器中,并且每次都不会被拉取。您可能可以在页面中放置一个函数并从外部脚本中调用它。
外部脚本
if(isAPostBack)
{
//run code
}
ASPX页面(脚本中头)
var isAPostBack = <%= Page.IsPostBack %>;
只要确保你的外部脚本获取网页上线后装入。
对于要处理的ASP代码,您需要有一个文件扩展名,它映射到IIS中的ASP DLL。
这里最简单的情况是使用.aspx
扩展名重命名.js
文件,然后更改<script>
元素的src属性。
另外,全球范围内创建isPostBack
变量在aspx
页面,然后打电话给你的js
文件,其中包含它的用法,如:
<script type="text/javascript">
var isPostBack = <%= Page.IsPostBack ? "true" : "false" %>;
</script>
<script type="text/javascript" src="/js/myscript.js"></script> <!-- <- script that uses isPostBack -->
你不能在一个外部JavaScript文件中使用<%= %>
符号;不起作用。
这将不会在JavaScript文件中工作,导致服务器将为此服务,并且不会识别asp标签。但是,您可以从aspx文件中执行此操作,并且它可以工作。您也可以使用通用处理程序。
祝你好运!
您只能通过页面上使用的aspx页面或用户控件或主页面来渲染此variable
。
将扩展名更改为aspx将无法正常工作,因为当从脚本标记加载页面(脚本)时,即使父页面具有“isPostBack == true”,isPostBack将始终为“false”。 -1,但为你的替代解决方案+1。网络投票= 0. – gilly3 2012-02-03 20:14:32
@ gilly3关于变量总是在脚本标记为假的好处 - 我的不好。很高兴我至少打破了即使:) – 2012-02-03 22:08:49