首页 新闻 会员 周边

页面交互问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-07-05 20:18

现有a.ASPX和b.HTML,a.ASPX中有语句<!--include file=“b.HTML”-->还有一个变量m,请问在b.HTML中是否能得到变量m?如何实现?可以用JS,jQuery等,谢谢!

kingboy8808的主页 kingboy8808 | 初学一级 | 园豆:5
提问于:2013-07-02 22:14
< >
分享
最佳答案
0

你要明白<!--#include file="b.html"-->的作用,他就是把一个文件包含到一个文件中,在a.aspx中看到的是b.html中的内容,而非<!--#include file="b.html"-->语句,那么要操作b.html中的内容,就跟操作a.aspx中的dom元素一样操作。你写一个简单的测试,b.html页面中只有<div id="divInB">a div in B! </div>,然后你在a .aspx中用include来包含这个文件,注意路径问题,然后你右键查看源代码就明白了。你在a.aspx中最后用$(function(){alert($("#divInB").html());});也能看到效果。

收获园豆:10
kylin.chen | 小虾三级 |园豆:983 | 2013-07-02 23:48

注意:b.html如果是一个标准的html页面,那么就存在documen嵌套的问题,怎么操作,你自己找资料吧。

kylin.chen | 园豆:983 (小虾三级) | 2013-07-02 23:50

@kylin.chen: 楼主说的我知道,只是现在问题是想操作变量m!!

kingboy8808 | 园豆:5 (初学一级) | 2013-07-03 08:40

@夜风冷: 你自己知道?!我看你还是没理解,我给你写出来吧。

abc.html页面:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title></title>
  <script>
    var UserName = "tiger";  //这是你所说的变量吧
  </script>
</head>
<body>
  <div id="divInABC">good man</div>
</body>
</html>

site.master页面(我测试,就直接放这里面了,只复制后面一部分)

<asp:ContentPlaceHolder ID="ScriptsSection" runat="server" />  
<!--#include file="/Scripts/abc.html"-->
</body>
</html>
<script>
  var abc = "张三";
  $(function () {
    alert($("#divInABC").html() + abc);
  });
</script>

<script>
  if (abc != null) abc = "李四";
  $(function () {
    alert($("#divInABC").html() + abc);
    if (UserName)            //这是你所说的变量吧
       alert(UserName);  
  });
</script>

上面我写了两个script标签,你用include ,实际上就是两个script的操作。 

(我又看了一下document嵌套的问题,好像IE10下面是忽略里面的HTML标签的。)

kylin.chen | 园豆:983 (小虾三级) | 2013-07-03 12:27

@kylin.chen: 楼主好人,只是可能还没看清问题,变量m是在aspx页面的,说白了就是能不能在html页面操作aspx页面里面的变量m!!!

kingboy8808 | 园豆:5 (初学一级) | 2013-07-04 17:03
其他回答(2)
0

<--include file=“b.HTML”>是用什么开发的啊?

秋壶冰月 | 园豆:5903 (大侠五级) | 2013-07-02 22:35
0

你确定你的是Asp.Net而不是Asp???。

幻天芒 | 园豆:37175 (高人七级) | 2013-07-03 01:18

确定以及肯定

支持(0) 反对(0) kingboy8808 | 园豆:5 (初学一级) | 2013-07-03 08:41

@夜风冷: include是包含指令,是将b的代码直接嵌入到a吧。所以当成一个页面就可以了吧~再者,将m用隐藏域保存,然后用$("#id")找到,也是能够找到的。呵呵,我还没在aspx中见到include指令,你是用了其他东西吗?

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-07-03 09:27

只要服务器支持SSI就可以这样用,但注意一般被包含的文件是没有HTML,body等标签的。如果要包含一个完整的页面,采用Iframe比较多。
比如网站的版权信息都是一样的,可以用include方式啊,这个方便的。只是他的这种需求比较怪异,很少有人这样做。

支持(0) 反对(0) kylin.chen | 园豆:983 (小虾三级) | 2013-07-03 12:35

@kylin.chen: 原来,我知道php和asp才是这样做的,。没想到asp.net还可以这样做。现在用MVC,直接分部视图就解决了这个问题了,而且实现更优雅~

感谢指教,学习了~

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-07-03 12:47

@幻天芒: 没办法,项目需要……

支持(0) 反对(0) kingboy8808 | 园豆:5 (初学一级) | 2013-07-04 17:07

@幻天芒: 你和楼上的都是一个错误,没看清问题,现在是问能不能实现这样的功能:一个单独的html页面能不能操作一个包含他的aspx页面里面的变量……

支持(0) 反对(0) kingboy8808 | 园豆:5 (初学一级) | 2013-07-04 17:10

@夜风冷: 道理是一样的啊,你必须把M这个变量放到include 前面啊,实际上是包含的文件已经生成HTML了,执行script了,而你M变量还没有生成吗。应该是一个顺序问题啊,你要确认在执行访问M的代码前,这个m已经存在了。

支持(0) 反对(0) kylin.chen | 园豆:983 (小虾三级) | 2013-07-04 17:18

 我没有测试,你自己测试一把吧。要理解ssi的原理。

支持(0) 反对(0) kylin.chen | 园豆:983 (小虾三级) | 2013-07-04 17:19

@幻天芒: 那也存在这个问题,因为是js脚本。razor是后台生成HTML,跟aspx都一样的。

支持(0) 反对(0) kylin.chen | 园豆:983 (小虾三级) | 2013-07-04 17:20

@kylin.chen: 操作肯定是可以的,不过需要注意顺序问题。当成一个页面处理就行,include指令,处理出来就是一个页面。我说MVC,是指MVC很容易实现include这样的功能。

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2013-07-04 19:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册