怎样向父页面script传递变量?

时间:2021-10-11 19:54:05
这样没问题:

parent.document.getElementById("si").innerHTML= '<%=ga2()%>'

这样出错了:

parent.document.getElementById("si").innerHTML= '<script type="text/javascript" charset="utf-8">title:'<%=ga2()%>'</script>'

请问script该怎么嵌套啊?

33 个解决方案

#1


不能这样写 只能创建节点 自己页面建立script节点也要创建 子父没影响
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'a.js';
head.appendChild(script);

#2


如果你是要执行父窗口的函数,
比如:父窗口有一个函数:test
parent.test();//即可执行,且有参数时一样可以传入参数执行

如果你是要修改父窗口的一个变量的值
比如:父窗口有一个全局变量:_global
 parent._global='我被子页面修改了值';//则在父窗口应用到此变量的值被修改

#3


parent用于框架 建议 将parent换成opener试试

#4


引用 2 楼  的回复:
如果你是要执行父窗口的函数,
比如:父窗口有一个函数:test
parent.test();//即可执行,且有参数时一样可以传入参数执行

如果你是要修改父窗口的一个变量的值
比如:父窗口有一个全局变量:_global
 parent._global='我被子页面修改了值';//则在父窗口应用到此变量的值被修改

这是分享按钮的变量。腾讯的可以替换,但新浪、百度的没有替换:

子页面:parent._ga2='我被子页面修改了值'

父页面:
<script type="text/javascript">
var _ga2="123"
</script>

以下是新浪分享,结果依旧是定义的“123”:
<script type="text/javascript" charset="utf-8">
(function(){
  var _w = 106 , _h = 24;
  var param = {
    url:location.href,
    type:'5',
    title:_ga2+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
    rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  }
  document.write('<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>')
})()
</script>

以下是腾讯分享,变量正常替换为:“我被子页面修改了值”:
<script type="text/javascript">
function postToWb(){
var _t = _ga2+'…';//标题和描述信息
var metainfo = document.getElementsByTagName("meta");
for(var metai = 0;metai < metainfo.length;metai++){
if((new RegExp('description','gi')).test(metainfo[metai].getAttribute("name"))){
_t = metainfo[metai].attributes["content"].value;
}
}
// _t =  document.title+_t;//请在这里添加你自定义的分享内容
if(_t.length > 120){
_t= _t.substr(0,117)+'...';
}
_t = encodeURI(_t);

var _u = 'http://share.v.t.qq.com/index.php?c=share&a=index&url='+_url+'&appkey='+_appkey+'&pic='+_pic+'&assname='+_assname+'&title='+_t;
window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
}
</script>

百度分享,结果也是一开始定义的“123”:
<script type="text/javascript">
var bds_config = {'bdText':_ga2+'…'};
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();
</script>

是我写错了?还是别的原因?腾讯通过了,新浪和百度为什么不行?
腾讯是:
=_ga2+'…';
新浪、百度是:
:_ga2+'…';

#5


你那已经写死了,更改变量的值没有任何作用

放弃document.write,变更为在一个指定的div中输出。比如:<div id="_bdShares"></div>

然后将那个输出分享的代码封装成一个函数[比如函数名为:myBdShares],将_ga2做为函数的参数就是了

在子页面使用:parent.myBdShares(参数值)去调用它,使其重新输出即可

#6


都和你的腾讯分享代码一样。使用function将功能代码封装起来。然后在子页面调用,使其重新生成新的代码就是了

你自己有一个例子成功了,其他的照着改就是了

#7


我的基础很差,试过类似<div id="_bdShares"></div>的办法,但是出错了。而且也不知道怎样封装、、、
可以麻烦你用我上面的代码写个例子吗?

#8


百度分享,你应该可以在子页面这么写:
parent.bds_config = {'bdText':_ga2+'…'};
parent.document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();

#9


这样写没有效果,显示的还是一开始定义的123
引用 8 楼  的回复:
百度分享,你应该可以在子页面这么写:
JScript code
parent.bds_config = {'bdText':_ga2+'…'};
parent.document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getH……

#10


新浪分享:
将原来的代码改为:
<div id="_sinaShares"></div>
<script type="text/javascript" charset="utf-8">
function sinaShares(){
  var _w = 106 , _h = 24;
  var param = {
      url:location.href,
      type:'5',
      title:_ga2+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
      rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  };
  document.getElementById("_sinaShares").innerHTML='<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>';
};
sinaShares();
</script>


//子页面想修改变量值后调用的话:
parent._ga2='111111111';
parent.sinaShares();


试试

#11


引用 9 楼  的回复:
这样写没有效果,显示的还是一开始定义的123

引用 8 楼 的回复:

百度分享,你应该可以在子页面这么写:
JScript code
parent.bds_config = {'bdText':_ga2+'…'};
parent.document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/st……


parent.bds_config = {'bdText':'1111111111111111…'};
parent.document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();


这样如果没效果的话,那就是有可能你百度分享的代码还有其他关联的地方没搞清楚

#12


差不多就这意思吧。自己参考着修改,调试吧

#13


百度分享没有值,新浪还是原来的123?!

#14


好,我再好好研究一番~~基础太差了~~
谢谢你的耐心能解答,无以回报,不管能不能解决,我先把分值加到100。

#15


新浪分享无效的话,改成下面的试试呗
<div id="_sinaShares"></div>
<script type="text/javascript" charset="utf-8">
function sinaShares(a){
  var _w = 106 , _h = 24;
  var param = {
      url:location.href,
      type:'5',
      title:a+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
      rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  };
  document.getElementById("_sinaShares").innerHTML='<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>';
};
sinaShares(_ga2);
</script>

上面是父页面中的代码

子页面直接传参调用
parent.sinaShares('aaaaaabbbbbb');

#16


你在父页面中随便写个函数
function testExec(){
   alert('调用成功')
}

然后在要刷新新浪分享的子页面中使用:parent.testExec()。看看是不是调用成功了

如果子页面是使用iframe内嵌的话,应该是没有问题的

#17


引用 2 楼  的回复:
如果你是要执行父窗口的函数,
比如:父窗口有一个函数:test
parent.test();//即可执行,且有参数时一样可以传入参数执行

如果你是要修改父窗口的一个变量的值
比如:父窗口有一个全局变量:_global
 parent._global='我被子页面修改了值';//则在父窗口应用到此变量的值被修改

不好意思 你这个方法好像只在iframe子页面有效吧,我用的是window.open也遇到了类似的问题,原来用window.opener可以,不过chrome不支持,无奈只好找别的方法,parent好像在window.open中无效的,请问有别的方法解决这个问题吗?

#18


腾讯没问题,新浪和百度总也弄不好,我把全部代码发上来你帮着看看好吗?
多了个sj的图片变量,同样在腾讯显示,新浪和百度不行(百度图片分享效果在网易按钮里看着方便):
父页面:

<%@CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<script type="text/javascript">
var _ga2="全局变量_ga2"
var sj="全局变量sj"
function testExec(){
  alert('调用成功')
}
</script>
<div id="Layer1" style="width:100%; height:100px; position:absolute; background-color: #FF00FF; visibility: hidden; left: 260px; top: 60px;">DIV返回:
<div id="aa" name="aa">此处显示  id "aa" 的内容</div>
<table width="500" align="center">
  <tr align="center">
    <td colspan="2">
<div align="center" id="bdshare" class="bdshare_t bds_tools get-codes-bdshare">
<span class="bds_more">分享到:</span>
<a class="bds_tsohu">搜狐微博</a>
<a class="bds_t163">网易微博</a>
<a class="bds_douban">豆瓣网</a>
<a class="bds_qzone">QQ空间</a>
<a class="bds_renren">人人网</a>
</div>
<script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=256631" ></script>
<script type="text/javascript" id="bdshell_js"></script>
<script type="text/javascript">
var bds_config = {'bdText':_ga2+'…','bdPic':'<%="http://csdnimg.cn/www/images/csdnindex_"+sj+".gif"%>'};
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();
</script>
</td>
    </tr>
  <tr align="center">
    <td>
<script type="text/javascript" charset="utf-8">
(function(){
  var _w = 106 , _h = 24;
  var param = {
    url:location.href,
    type:'5',
    count:'', /**是否显示分享数,1显示(可选)*/
    appkey:'', /**您申请的应用appkey,显示分享来源(可选)*/
    title:_ga2+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
    pic:'http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif', /**分享图片的路径(可选)*/
    ralateUid:'', /**关联用户的UID,分享微博会@该用户(可选)*/
language:'zh_cn', /**设置语言,zh_cn|zh_tw(可选)*/
    rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  }
  document.write('<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>')
})()
</script> </td>
    <td>
<a href="javascript:void(0)" onclick="postToWb();return false;" class="tmblog"><img src="http://v.t.qq.com/share/images/s/b24.png" border="0" alt="转播到腾讯微博"></a>
<script type="text/javascript">
function postToWb(){
var _url = encodeURIComponent(document.location);
var _assname = encodeURI("");//你注册的帐号,不是昵称
var _appkey = encodeURI("");//你从腾讯获得的appkey
var _pic = encodeURI('http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif');//(例如:var _pic='图片url1|图片url2|图片url3....)
var _t = _ga2+'…';//标题和描述信息
var metainfo = document.getElementsByTagName("meta");
for(var metai = 0;metai < metainfo.length;metai++){
if((new RegExp('description','gi')).test(metainfo[metai].getAttribute("name"))){
_t = metainfo[metai].attributes["content"].value;
}
}
// _t =  document.title+_t;//请在这里添加你自定义的分享内容
if(_t.length > 120){
_t= _t.substr(0,117)+'...';
}
_t = encodeURI(_t);

var _u = 'http://share.v.t.qq.com/index.php?c=share&a=index&url='+_url+'&appkey='+_appkey+'&pic='+_pic+'&assname='+_assname+'&title='+_t;
window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
}
</script> </td>
  </tr>
</table>
</div>
<iframe src="3.aspx" name="i2" scrolling="auto"></iframe>
<form action="3.aspx" method="post" name="form1" target="i2" id="form1">
  <textarea name="te" cols="" rows="">36</textarea>
  <input type="submit" name="Submit" value="提交" />
</form>
</body>
</html>

iframe子页面3.aspx:

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<%
string re=Request.Form["te"];
string sj="logo";
%>
<%="结果:"+re%>
<script>
<% if (!String.IsNullOrEmpty(re))
{%>
parent.document.getElementById("aa").innerHTML= '返回:<%=re.Replace("\r\n","<br/>").Replace("'","\\'")%>'
parent.document.getElementById("Layer1").style.visibility=""//显示
parent._ga2='<%=re.Replace("\r\n","").Replace("'","\\'")%>';
parent.sj='<%=sj%>';
parent.testExec()
<%}%>
</script>
</body>
</html>

#19


父页面:
<script type="text/javascript">
var _ga2="全局变量_ga2"
var sj="全局变量sj"
</script>

<table width="500" align="center">
  <tr align="center">
    <td colspan="2">
<div align="center" id="bdshare" class="bdshare_t bds_tools get-codes-bdshare">
<span class="bds_more">分享到:</span>
<a class="bds_tsohu">搜狐微博</a>
<a class="bds_t163">网易微博</a>
<a class="bds_douban">豆瓣网</a>
<a class="bds_qzone">QQ空间</a>
<a class="bds_renren">人人网</a>
</div>
<script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=256631" ></script>
<script type="text/javascript" id="bdshell_js"></script>
<script type="text/javascript">
    var bds_config;
    function myBdShares(a){
        bds_config = {'bdText':a+'…','bdPic':'1.gif'};
//'bdPic':<%="http://csdnimg.cn/www/images/csdnindex_"+sj+".gif"%>这算什么写法
        //'bdPic':'http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif'才对吧?
        document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();
    };
    //默认时,先不要调用百度分享;百度分享可能是一次性加载的,生成后不能再更改
</script>
    </td>
    </tr>
  <tr align="center">
    <td>
    <div id="_sinaShares"></div>
<script type="text/javascript" charset="utf-8">
function sinaShares(a){
  var _w = 106 , _h = 24;
  var param = {
      url:location.href,
      type:'5',
      title:a+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
      rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  };
  document.getElementById("_sinaShares").innerHTML='<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>';
};
sinaShares(_ga2);
</script>
</td>
    <td>
<a href="javascript:void(0)" onclick="postToWb();return false;" class="tmblog"><img src="http://v.t.qq.com/share/images/s/b24.png" border="0" alt="转播到腾讯微博"></a>
<script type="text/javascript">
    function postToWb(){
        var _url = encodeURIComponent(document.location);
        var _assname = encodeURI("");//你注册的帐号,不是昵称
        var _appkey = encodeURI("");//你从腾讯获得的appkey
        var _pic = encodeURI('http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif');//(例如:var _pic='图片url1|图片url2|图片url3....)
        var _t = _ga2+'…';//标题和描述信息
        var metainfo = document.getElementsByTagName("meta");
        for(var metai = 0;metai < metainfo.length;metai++){
            if((new RegExp('description','gi')).test(metainfo[metai].getAttribute("name"))){
                _t = metainfo[metai].attributes["content"].value;
            }
        }
        if(_t.length > 120){
            _t= _t.substr(0,117)+'...';
        }
        _t = encodeURI(_t);

        var _u = 'http://share.v.t.qq.com/index.php?c=share&a=index&url='+_url+'&appkey='+_appkey+'&pic='+_pic+'&assname='+_assname+'&title='+_t;
        window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
    }
</script>    </td>
  </tr>
</table>

<iframe src="3.aspx" name="i2" id="i2" scrolling="auto"></iframe>
<form method="post" name="form1" target="i2" id="form1">
  <textarea name="te" cols="" rows="">36</textarea>
  <input type="submit" name="Submit" value="提交" />
</form>


3.aspx
<script type="text/javascript">
parent.myBdShares('我被子页面修改了值--百度分享');
parent.sinaShares('我被子页面修改了值--新浪分享')
</script>


一次加载是可以控制的。但不知道你是不是想提交表单后动态修改。估计百度分享可能有问题

其他的自己组织吧

#20


window.top.title = '<%=ga2()%>' 
就这么简单

#21


parent.document.getElementById("si").innerHTML= '<script type="text/javascript" charset="utf-8">title:'<%=ga2()%>'</' + 'script>'
这样试试

#22


学习了 这个浮动帧位置 太蛋疼了
 

#23


思路应该是对的,但是总出现乱码。两个页面都是utf-8,重新载入也不行!后面的调试一直没弄呢,头大啊~~~
另外20楼、21楼的办法行不通!
引用 19 楼  的回复:
父页面:
HTML code
<script type="text/javascript">
var _ga2="全局变量_ga2"
var sj="全局变量sj"
</script>

<table width="500" align="center">
  <tr align="center">
    <td colspan="2">
<div align="center" id="b……

#24


。。。。还在纠结??

那我就多说两句

你总体的解决思路我就觉得不好,提供个思路参数一下

1:页面中有一个定义了style="position:absolute"的层,里面装载了一个iframe,iframe中包含你那些分享
2:需要使用分享时,弹出那个层,并定好位,将iframe中需要的参数附加给iframe.src中,比如[src="share.aspx?title=我被修改了值&sj=1111"]
3:在share.aspx中根据传入的参数,生成你需要的分享代码

#25


思路参数=思路参考。。。。。手误,手误

#26


也还没睡啊,辛苦了!
简单测试通过了,理论上应该行得通!但是现在乱码最头疼,家里没有装着VS,明天去单位重新生成新的aspx页面试试。没了乱码再试试提交表单传递多个变量。现在似乎一增加那个隐藏层就出问题不能正常传递!
你刚才说的思路,那个iframe调试好以后会设为不可见,提交显示隐藏层(再加个关闭——也就是重新隐藏的链接)就能近似达到无刷新提交的效果。不过get传递变量有长度限制,只能用post。
不早了,明天生成新页面重新再试~~
晚安!
引用 24 楼  的回复:
。。。。还在纠结??

那我就多说两句

你总体的解决思路我就觉得不好,提供个思路参数一下

1:页面中有一个定义了style="position:absolute"的层,里面装载了一个iframe,iframe中包含你那些分享
2:需要使用分享时,弹出那个层,并定好位,将iframe中需要的参数附加给iframe.src中,比如[src="share.aspx?title=我被修……

#27


今天用VS新生成了aspx页面(原来是dreamweaver生成的),还是有乱码,没想到这么难解决!
放进aspx.cs也不行:CS1012: 字符文本中的字符太多(而且显示的字符是乱码):行 11: parent.myBdShares('鎴戣瀛愰〉闈慨鏀逛簡鍊?-鐧惧害鍒嗕韩');
还有,分享按钮本应该在父页面显示,为什么一提交也在iframe中的2.aspx中显示了?
2.asp

<%@CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<script type="text/javascript">
var _ga2="全局变量_ga2"
var sj="全局变量sj"
</script>

<table width="500" align="center">
  <tr align="center">
    <td colspan="2">
<div align="center" id="bdshare" class="bdshare_t bds_tools get-codes-bdshare">
<span class="bds_more">分享到:</span>
<a class="bds_tsohu">搜狐微博</a>
<a class="bds_t163">网易微博</a>
<a class="bds_douban">豆瓣网</a>
<a class="bds_qzone">QQ空间</a>
<a class="bds_renren">人人网</a>
</div>
<script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=256" ></script>
<script type="text/javascript" id="bdshell_js"></script>
<script type="text/javascript">
    var bds_config;
    function myBdShares(a){
        bds_config = {'bdText':a+'…','bdPic':'1.gif'};
//'bdPic':<%="http://csdnimg.cn/www/images/csdnindex_"+sj+".gif"%>这算什么写法
        //'bdPic':'http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif'才对吧?
        document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();
    };
    //默认时,先不要调用百度分享;百度分享可能是一次性加载的,生成后不能再更改
</script>
    </td>
    </tr>
  <tr align="center">
    <td>
    <div id="_sinaShares"></div>
<script type="text/javascript" charset="utf-8">
function sinaShares(a){
  var _w = 106 , _h = 24;
  var param = {
      url:location.href,
      type:'5',
      title:a+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
      rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  };
  document.getElementById("_sinaShares").innerHTML='<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>';
};
sinaShares(_ga2);
</script>
</td>
    <td>
<a href="javascript:void(0)" onclick="postToWb();return false;" class="tmblog"><img src="http://v.t.qq.com/share/images/s/b24.png" border="0" alt="转播到腾讯微博"></a>
<script type="text/javascript">
    function postToWb(){
        var _url = encodeURIComponent(document.location);
        var _assname = encodeURI("");//你注册的帐号,不是昵称
        var _appkey = encodeURI("");//你从腾讯获得的appkey
        var _pic = encodeURI('http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif');//(例如:var _pic='图片url1|图片url2|图片url3....)
        var _t = _ga2+'…';//标题和描述信息
        var metainfo = document.getElementsByTagName("meta");
        for(var metai = 0;metai < metainfo.length;metai++){
            if((new RegExp('description','gi')).test(metainfo[metai].getAttribute("name"))){
                _t = metainfo[metai].attributes["content"].value;
            }
        }
        if(_t.length > 120){
            _t= _t.substr(0,117)+'...';
        }
        _t = encodeURI(_t);

        var _u = 'http://share.v.t.qq.com/index.php?c=share&a=index&url='+_url+'&appkey='+_appkey+'&pic='+_pic+'&assname='+_assname+'&title='+_t;
        window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
    }
</script>    </td>
  </tr>
</table>

<iframe src="2.aspx" name="i2" id="i2" scrolling="auto"></iframe>
<form method="post" name="form1" target="i2" id="form1">
  <textarea name="te" cols="" rows="">36</textarea>
  <input type="submit" name="Submit" value="提交" />
</form>
</body>
</html>

2.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="2.aspx.cs" Inherits="_2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>

<body>
</body>
</html>

2.aspx.cs

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
parent.myBdShares('我被子页面修改了值--百度分享');
parent.sinaShares('我被子页面修改了值--新浪分享');
    }
}

#28


用记事本打开文件,另存为UTF-8试试

#29


。。。。

parent.myBdShares('我被子页面修改了值--百度分享');
parent.sinaShares('我被子页面修改了值--新浪分享');

居然这样直接写在了Page_Load中。。。。

你要写,也写在aspx页面中呀

编码的问题,把<%@CODEPAGE="65001"%>去掉,然后在vs的“文件--高级保存选项--在编码中拉到最上面,选择“UTF-8带签名””试试

#30


我在dreamweaver页面属性里面重新加载utf-8不行,又一个字一个字的重新输入的汉字还是不行~~你这个办法倒是很灵验!谢谢!!!
引用 28 楼  的回复:
用记事本打开文件,另存为UTF-8试试

#31


引用 2 楼  的回复:
如果你是要执行父窗口的函数,
比如:父窗口有一个函数:test
parent.test();//即可执行,且有参数时一样可以传入参数执行

如果你是要修改父窗口的一个变量的值
比如:父窗口有一个全局变量:_global
 parent._global='我被子页面修改了值';//则在父窗口应用到此变量的值被修改

+1..
你说的问题都可以用传给父页面的方法。然后在父页面处理即可。parent.test(value);

#32


已经没有乱码了,现在一放进隐藏层就出问题,正找原因~~
嗯,又把代码放回aspx页面中了~~~
引用 29 楼  的回复:
。。。。

parent.myBdShares('我被子页面修改了值--百度分享');
parent.sinaShares('我被子页面修改了值--新浪分享');

居然这样直接写在了Page_Load中。。。。

你要写,也写在aspx页面中呀

编码的问题,把<%@CODEPAGE="65001"%>去掉,然后在vs的“文件--高级保存选项--在编码中拉到最上面,选择“UTF……

#33


哈哈,终于结贴了!谢谢大家!
尤其感谢crying_boy!没能给够你100分,你随便顶一下这两个帖子,我都结给你吧:
http://topic.csdn.net/u/20120519/00/601bcc72-2e3e-4aeb-b326-38c30c2403fa.html
http://topic.csdn.net/u/20121014/15/0339af91-b2a0-4a8b-93c3-04b39d8c93e4.html
当然,能解决问题更好!再次表示感谢!

#1


不能这样写 只能创建节点 自己页面建立script节点也要创建 子父没影响
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'a.js';
head.appendChild(script);

#2


如果你是要执行父窗口的函数,
比如:父窗口有一个函数:test
parent.test();//即可执行,且有参数时一样可以传入参数执行

如果你是要修改父窗口的一个变量的值
比如:父窗口有一个全局变量:_global
 parent._global='我被子页面修改了值';//则在父窗口应用到此变量的值被修改

#3


parent用于框架 建议 将parent换成opener试试

#4


引用 2 楼  的回复:
如果你是要执行父窗口的函数,
比如:父窗口有一个函数:test
parent.test();//即可执行,且有参数时一样可以传入参数执行

如果你是要修改父窗口的一个变量的值
比如:父窗口有一个全局变量:_global
 parent._global='我被子页面修改了值';//则在父窗口应用到此变量的值被修改

这是分享按钮的变量。腾讯的可以替换,但新浪、百度的没有替换:

子页面:parent._ga2='我被子页面修改了值'

父页面:
<script type="text/javascript">
var _ga2="123"
</script>

以下是新浪分享,结果依旧是定义的“123”:
<script type="text/javascript" charset="utf-8">
(function(){
  var _w = 106 , _h = 24;
  var param = {
    url:location.href,
    type:'5',
    title:_ga2+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
    rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  }
  document.write('<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>')
})()
</script>

以下是腾讯分享,变量正常替换为:“我被子页面修改了值”:
<script type="text/javascript">
function postToWb(){
var _t = _ga2+'…';//标题和描述信息
var metainfo = document.getElementsByTagName("meta");
for(var metai = 0;metai < metainfo.length;metai++){
if((new RegExp('description','gi')).test(metainfo[metai].getAttribute("name"))){
_t = metainfo[metai].attributes["content"].value;
}
}
// _t =  document.title+_t;//请在这里添加你自定义的分享内容
if(_t.length > 120){
_t= _t.substr(0,117)+'...';
}
_t = encodeURI(_t);

var _u = 'http://share.v.t.qq.com/index.php?c=share&a=index&url='+_url+'&appkey='+_appkey+'&pic='+_pic+'&assname='+_assname+'&title='+_t;
window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
}
</script>

百度分享,结果也是一开始定义的“123”:
<script type="text/javascript">
var bds_config = {'bdText':_ga2+'…'};
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();
</script>

是我写错了?还是别的原因?腾讯通过了,新浪和百度为什么不行?
腾讯是:
=_ga2+'…';
新浪、百度是:
:_ga2+'…';

#5


你那已经写死了,更改变量的值没有任何作用

放弃document.write,变更为在一个指定的div中输出。比如:<div id="_bdShares"></div>

然后将那个输出分享的代码封装成一个函数[比如函数名为:myBdShares],将_ga2做为函数的参数就是了

在子页面使用:parent.myBdShares(参数值)去调用它,使其重新输出即可

#6


都和你的腾讯分享代码一样。使用function将功能代码封装起来。然后在子页面调用,使其重新生成新的代码就是了

你自己有一个例子成功了,其他的照着改就是了

#7


我的基础很差,试过类似<div id="_bdShares"></div>的办法,但是出错了。而且也不知道怎样封装、、、
可以麻烦你用我上面的代码写个例子吗?

#8


百度分享,你应该可以在子页面这么写:
parent.bds_config = {'bdText':_ga2+'…'};
parent.document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();

#9


这样写没有效果,显示的还是一开始定义的123
引用 8 楼  的回复:
百度分享,你应该可以在子页面这么写:
JScript code
parent.bds_config = {'bdText':_ga2+'…'};
parent.document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getH……

#10


新浪分享:
将原来的代码改为:
<div id="_sinaShares"></div>
<script type="text/javascript" charset="utf-8">
function sinaShares(){
  var _w = 106 , _h = 24;
  var param = {
      url:location.href,
      type:'5',
      title:_ga2+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
      rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  };
  document.getElementById("_sinaShares").innerHTML='<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>';
};
sinaShares();
</script>


//子页面想修改变量值后调用的话:
parent._ga2='111111111';
parent.sinaShares();


试试

#11


引用 9 楼  的回复:
这样写没有效果,显示的还是一开始定义的123

引用 8 楼 的回复:

百度分享,你应该可以在子页面这么写:
JScript code
parent.bds_config = {'bdText':_ga2+'…'};
parent.document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/st……


parent.bds_config = {'bdText':'1111111111111111…'};
parent.document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();


这样如果没效果的话,那就是有可能你百度分享的代码还有其他关联的地方没搞清楚

#12


差不多就这意思吧。自己参考着修改,调试吧

#13


百度分享没有值,新浪还是原来的123?!

#14


好,我再好好研究一番~~基础太差了~~
谢谢你的耐心能解答,无以回报,不管能不能解决,我先把分值加到100。

#15


新浪分享无效的话,改成下面的试试呗
<div id="_sinaShares"></div>
<script type="text/javascript" charset="utf-8">
function sinaShares(a){
  var _w = 106 , _h = 24;
  var param = {
      url:location.href,
      type:'5',
      title:a+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
      rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  };
  document.getElementById("_sinaShares").innerHTML='<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>';
};
sinaShares(_ga2);
</script>

上面是父页面中的代码

子页面直接传参调用
parent.sinaShares('aaaaaabbbbbb');

#16


你在父页面中随便写个函数
function testExec(){
   alert('调用成功')
}

然后在要刷新新浪分享的子页面中使用:parent.testExec()。看看是不是调用成功了

如果子页面是使用iframe内嵌的话,应该是没有问题的

#17


引用 2 楼  的回复:
如果你是要执行父窗口的函数,
比如:父窗口有一个函数:test
parent.test();//即可执行,且有参数时一样可以传入参数执行

如果你是要修改父窗口的一个变量的值
比如:父窗口有一个全局变量:_global
 parent._global='我被子页面修改了值';//则在父窗口应用到此变量的值被修改

不好意思 你这个方法好像只在iframe子页面有效吧,我用的是window.open也遇到了类似的问题,原来用window.opener可以,不过chrome不支持,无奈只好找别的方法,parent好像在window.open中无效的,请问有别的方法解决这个问题吗?

#18


腾讯没问题,新浪和百度总也弄不好,我把全部代码发上来你帮着看看好吗?
多了个sj的图片变量,同样在腾讯显示,新浪和百度不行(百度图片分享效果在网易按钮里看着方便):
父页面:

<%@CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<script type="text/javascript">
var _ga2="全局变量_ga2"
var sj="全局变量sj"
function testExec(){
  alert('调用成功')
}
</script>
<div id="Layer1" style="width:100%; height:100px; position:absolute; background-color: #FF00FF; visibility: hidden; left: 260px; top: 60px;">DIV返回:
<div id="aa" name="aa">此处显示  id "aa" 的内容</div>
<table width="500" align="center">
  <tr align="center">
    <td colspan="2">
<div align="center" id="bdshare" class="bdshare_t bds_tools get-codes-bdshare">
<span class="bds_more">分享到:</span>
<a class="bds_tsohu">搜狐微博</a>
<a class="bds_t163">网易微博</a>
<a class="bds_douban">豆瓣网</a>
<a class="bds_qzone">QQ空间</a>
<a class="bds_renren">人人网</a>
</div>
<script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=256631" ></script>
<script type="text/javascript" id="bdshell_js"></script>
<script type="text/javascript">
var bds_config = {'bdText':_ga2+'…','bdPic':'<%="http://csdnimg.cn/www/images/csdnindex_"+sj+".gif"%>'};
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();
</script>
</td>
    </tr>
  <tr align="center">
    <td>
<script type="text/javascript" charset="utf-8">
(function(){
  var _w = 106 , _h = 24;
  var param = {
    url:location.href,
    type:'5',
    count:'', /**是否显示分享数,1显示(可选)*/
    appkey:'', /**您申请的应用appkey,显示分享来源(可选)*/
    title:_ga2+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
    pic:'http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif', /**分享图片的路径(可选)*/
    ralateUid:'', /**关联用户的UID,分享微博会@该用户(可选)*/
language:'zh_cn', /**设置语言,zh_cn|zh_tw(可选)*/
    rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  }
  document.write('<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>')
})()
</script> </td>
    <td>
<a href="javascript:void(0)" onclick="postToWb();return false;" class="tmblog"><img src="http://v.t.qq.com/share/images/s/b24.png" border="0" alt="转播到腾讯微博"></a>
<script type="text/javascript">
function postToWb(){
var _url = encodeURIComponent(document.location);
var _assname = encodeURI("");//你注册的帐号,不是昵称
var _appkey = encodeURI("");//你从腾讯获得的appkey
var _pic = encodeURI('http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif');//(例如:var _pic='图片url1|图片url2|图片url3....)
var _t = _ga2+'…';//标题和描述信息
var metainfo = document.getElementsByTagName("meta");
for(var metai = 0;metai < metainfo.length;metai++){
if((new RegExp('description','gi')).test(metainfo[metai].getAttribute("name"))){
_t = metainfo[metai].attributes["content"].value;
}
}
// _t =  document.title+_t;//请在这里添加你自定义的分享内容
if(_t.length > 120){
_t= _t.substr(0,117)+'...';
}
_t = encodeURI(_t);

var _u = 'http://share.v.t.qq.com/index.php?c=share&a=index&url='+_url+'&appkey='+_appkey+'&pic='+_pic+'&assname='+_assname+'&title='+_t;
window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
}
</script> </td>
  </tr>
</table>
</div>
<iframe src="3.aspx" name="i2" scrolling="auto"></iframe>
<form action="3.aspx" method="post" name="form1" target="i2" id="form1">
  <textarea name="te" cols="" rows="">36</textarea>
  <input type="submit" name="Submit" value="提交" />
</form>
</body>
</html>

iframe子页面3.aspx:

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="utf-8" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
<body>
<%
string re=Request.Form["te"];
string sj="logo";
%>
<%="结果:"+re%>
<script>
<% if (!String.IsNullOrEmpty(re))
{%>
parent.document.getElementById("aa").innerHTML= '返回:<%=re.Replace("\r\n","<br/>").Replace("'","\\'")%>'
parent.document.getElementById("Layer1").style.visibility=""//显示
parent._ga2='<%=re.Replace("\r\n","").Replace("'","\\'")%>';
parent.sj='<%=sj%>';
parent.testExec()
<%}%>
</script>
</body>
</html>

#19


父页面:
<script type="text/javascript">
var _ga2="全局变量_ga2"
var sj="全局变量sj"
</script>

<table width="500" align="center">
  <tr align="center">
    <td colspan="2">
<div align="center" id="bdshare" class="bdshare_t bds_tools get-codes-bdshare">
<span class="bds_more">分享到:</span>
<a class="bds_tsohu">搜狐微博</a>
<a class="bds_t163">网易微博</a>
<a class="bds_douban">豆瓣网</a>
<a class="bds_qzone">QQ空间</a>
<a class="bds_renren">人人网</a>
</div>
<script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=256631" ></script>
<script type="text/javascript" id="bdshell_js"></script>
<script type="text/javascript">
    var bds_config;
    function myBdShares(a){
        bds_config = {'bdText':a+'…','bdPic':'1.gif'};
//'bdPic':<%="http://csdnimg.cn/www/images/csdnindex_"+sj+".gif"%>这算什么写法
        //'bdPic':'http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif'才对吧?
        document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();
    };
    //默认时,先不要调用百度分享;百度分享可能是一次性加载的,生成后不能再更改
</script>
    </td>
    </tr>
  <tr align="center">
    <td>
    <div id="_sinaShares"></div>
<script type="text/javascript" charset="utf-8">
function sinaShares(a){
  var _w = 106 , _h = 24;
  var param = {
      url:location.href,
      type:'5',
      title:a+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
      rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  };
  document.getElementById("_sinaShares").innerHTML='<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>';
};
sinaShares(_ga2);
</script>
</td>
    <td>
<a href="javascript:void(0)" onclick="postToWb();return false;" class="tmblog"><img src="http://v.t.qq.com/share/images/s/b24.png" border="0" alt="转播到腾讯微博"></a>
<script type="text/javascript">
    function postToWb(){
        var _url = encodeURIComponent(document.location);
        var _assname = encodeURI("");//你注册的帐号,不是昵称
        var _appkey = encodeURI("");//你从腾讯获得的appkey
        var _pic = encodeURI('http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif');//(例如:var _pic='图片url1|图片url2|图片url3....)
        var _t = _ga2+'…';//标题和描述信息
        var metainfo = document.getElementsByTagName("meta");
        for(var metai = 0;metai < metainfo.length;metai++){
            if((new RegExp('description','gi')).test(metainfo[metai].getAttribute("name"))){
                _t = metainfo[metai].attributes["content"].value;
            }
        }
        if(_t.length > 120){
            _t= _t.substr(0,117)+'...';
        }
        _t = encodeURI(_t);

        var _u = 'http://share.v.t.qq.com/index.php?c=share&a=index&url='+_url+'&appkey='+_appkey+'&pic='+_pic+'&assname='+_assname+'&title='+_t;
        window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
    }
</script>    </td>
  </tr>
</table>

<iframe src="3.aspx" name="i2" id="i2" scrolling="auto"></iframe>
<form method="post" name="form1" target="i2" id="form1">
  <textarea name="te" cols="" rows="">36</textarea>
  <input type="submit" name="Submit" value="提交" />
</form>


3.aspx
<script type="text/javascript">
parent.myBdShares('我被子页面修改了值--百度分享');
parent.sinaShares('我被子页面修改了值--新浪分享')
</script>


一次加载是可以控制的。但不知道你是不是想提交表单后动态修改。估计百度分享可能有问题

其他的自己组织吧

#20


window.top.title = '<%=ga2()%>' 
就这么简单

#21


parent.document.getElementById("si").innerHTML= '<script type="text/javascript" charset="utf-8">title:'<%=ga2()%>'</' + 'script>'
这样试试

#22


学习了 这个浮动帧位置 太蛋疼了
 

#23


思路应该是对的,但是总出现乱码。两个页面都是utf-8,重新载入也不行!后面的调试一直没弄呢,头大啊~~~
另外20楼、21楼的办法行不通!
引用 19 楼  的回复:
父页面:
HTML code
<script type="text/javascript">
var _ga2="全局变量_ga2"
var sj="全局变量sj"
</script>

<table width="500" align="center">
  <tr align="center">
    <td colspan="2">
<div align="center" id="b……

#24


。。。。还在纠结??

那我就多说两句

你总体的解决思路我就觉得不好,提供个思路参数一下

1:页面中有一个定义了style="position:absolute"的层,里面装载了一个iframe,iframe中包含你那些分享
2:需要使用分享时,弹出那个层,并定好位,将iframe中需要的参数附加给iframe.src中,比如[src="share.aspx?title=我被修改了值&sj=1111"]
3:在share.aspx中根据传入的参数,生成你需要的分享代码

#25


思路参数=思路参考。。。。。手误,手误

#26


也还没睡啊,辛苦了!
简单测试通过了,理论上应该行得通!但是现在乱码最头疼,家里没有装着VS,明天去单位重新生成新的aspx页面试试。没了乱码再试试提交表单传递多个变量。现在似乎一增加那个隐藏层就出问题不能正常传递!
你刚才说的思路,那个iframe调试好以后会设为不可见,提交显示隐藏层(再加个关闭——也就是重新隐藏的链接)就能近似达到无刷新提交的效果。不过get传递变量有长度限制,只能用post。
不早了,明天生成新页面重新再试~~
晚安!
引用 24 楼  的回复:
。。。。还在纠结??

那我就多说两句

你总体的解决思路我就觉得不好,提供个思路参数一下

1:页面中有一个定义了style="position:absolute"的层,里面装载了一个iframe,iframe中包含你那些分享
2:需要使用分享时,弹出那个层,并定好位,将iframe中需要的参数附加给iframe.src中,比如[src="share.aspx?title=我被修……

#27


今天用VS新生成了aspx页面(原来是dreamweaver生成的),还是有乱码,没想到这么难解决!
放进aspx.cs也不行:CS1012: 字符文本中的字符太多(而且显示的字符是乱码):行 11: parent.myBdShares('鎴戣瀛愰〉闈慨鏀逛簡鍊?-鐧惧害鍒嗕韩');
还有,分享按钮本应该在父页面显示,为什么一提交也在iframe中的2.aspx中显示了?
2.asp

<%@CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<script type="text/javascript">
var _ga2="全局变量_ga2"
var sj="全局变量sj"
</script>

<table width="500" align="center">
  <tr align="center">
    <td colspan="2">
<div align="center" id="bdshare" class="bdshare_t bds_tools get-codes-bdshare">
<span class="bds_more">分享到:</span>
<a class="bds_tsohu">搜狐微博</a>
<a class="bds_t163">网易微博</a>
<a class="bds_douban">豆瓣网</a>
<a class="bds_qzone">QQ空间</a>
<a class="bds_renren">人人网</a>
</div>
<script type="text/javascript" id="bdshare_js" data="type=tools&amp;uid=256" ></script>
<script type="text/javascript" id="bdshell_js"></script>
<script type="text/javascript">
    var bds_config;
    function myBdShares(a){
        bds_config = {'bdText':a+'…','bdPic':'1.gif'};
//'bdPic':<%="http://csdnimg.cn/www/images/csdnindex_"+sj+".gif"%>这算什么写法
        //'bdPic':'http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif'才对吧?
        document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?t=" + new Date().getHours();
    };
    //默认时,先不要调用百度分享;百度分享可能是一次性加载的,生成后不能再更改
</script>
    </td>
    </tr>
  <tr align="center">
    <td>
    <div id="_sinaShares"></div>
<script type="text/javascript" charset="utf-8">
function sinaShares(a){
  var _w = 106 , _h = 24;
  var param = {
      url:location.href,
      type:'5',
      title:a+'…', /**分享的文字内容(可选,默认为所在页面的title)*/
      rnd:new Date().valueOf()
  }
  var temp = [];
  for( var p in param ){
    temp.push(p + '=' + encodeURIComponent( param[p] || '' ) )
  };
  document.getElementById("_sinaShares").innerHTML='<iframe allowTransparency="true" frameborder="0" scrolling="no" src="http://hits.sinajs.cn/A1/weiboshare.html?' + temp.join('&') + '" width="'+ _w+'" height="'+_h+'"></iframe>';
};
sinaShares(_ga2);
</script>
</td>
    <td>
<a href="javascript:void(0)" onclick="postToWb();return false;" class="tmblog"><img src="http://v.t.qq.com/share/images/s/b24.png" border="0" alt="转播到腾讯微博"></a>
<script type="text/javascript">
    function postToWb(){
        var _url = encodeURIComponent(document.location);
        var _assname = encodeURI("");//你注册的帐号,不是昵称
        var _appkey = encodeURI("");//你从腾讯获得的appkey
        var _pic = encodeURI('http://csdnimg.cn/www/images/csdnindex_'+sj+'.gif');//(例如:var _pic='图片url1|图片url2|图片url3....)
        var _t = _ga2+'…';//标题和描述信息
        var metainfo = document.getElementsByTagName("meta");
        for(var metai = 0;metai < metainfo.length;metai++){
            if((new RegExp('description','gi')).test(metainfo[metai].getAttribute("name"))){
                _t = metainfo[metai].attributes["content"].value;
            }
        }
        if(_t.length > 120){
            _t= _t.substr(0,117)+'...';
        }
        _t = encodeURI(_t);

        var _u = 'http://share.v.t.qq.com/index.php?c=share&a=index&url='+_url+'&appkey='+_appkey+'&pic='+_pic+'&assname='+_assname+'&title='+_t;
        window.open( _u,'', 'width=700, height=680, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, location=yes, resizable=no, status=no' );
    }
</script>    </td>
  </tr>
</table>

<iframe src="2.aspx" name="i2" id="i2" scrolling="auto"></iframe>
<form method="post" name="form1" target="i2" id="form1">
  <textarea name="te" cols="" rows="">36</textarea>
  <input type="submit" name="Submit" value="提交" />
</form>
</body>
</html>

2.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="2.aspx.cs" Inherits="_2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>

<body>
</body>
</html>

2.aspx.cs

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
parent.myBdShares('我被子页面修改了值--百度分享');
parent.sinaShares('我被子页面修改了值--新浪分享');
    }
}

#28


用记事本打开文件,另存为UTF-8试试

#29


。。。。

parent.myBdShares('我被子页面修改了值--百度分享');
parent.sinaShares('我被子页面修改了值--新浪分享');

居然这样直接写在了Page_Load中。。。。

你要写,也写在aspx页面中呀

编码的问题,把<%@CODEPAGE="65001"%>去掉,然后在vs的“文件--高级保存选项--在编码中拉到最上面,选择“UTF-8带签名””试试

#30


我在dreamweaver页面属性里面重新加载utf-8不行,又一个字一个字的重新输入的汉字还是不行~~你这个办法倒是很灵验!谢谢!!!
引用 28 楼  的回复:
用记事本打开文件,另存为UTF-8试试

#31


引用 2 楼  的回复:
如果你是要执行父窗口的函数,
比如:父窗口有一个函数:test
parent.test();//即可执行,且有参数时一样可以传入参数执行

如果你是要修改父窗口的一个变量的值
比如:父窗口有一个全局变量:_global
 parent._global='我被子页面修改了值';//则在父窗口应用到此变量的值被修改

+1..
你说的问题都可以用传给父页面的方法。然后在父页面处理即可。parent.test(value);

#32


已经没有乱码了,现在一放进隐藏层就出问题,正找原因~~
嗯,又把代码放回aspx页面中了~~~
引用 29 楼  的回复:
。。。。

parent.myBdShares('我被子页面修改了值--百度分享');
parent.sinaShares('我被子页面修改了值--新浪分享');

居然这样直接写在了Page_Load中。。。。

你要写,也写在aspx页面中呀

编码的问题,把<%@CODEPAGE="65001"%>去掉,然后在vs的“文件--高级保存选项--在编码中拉到最上面,选择“UTF……

#33


哈哈,终于结贴了!谢谢大家!
尤其感谢crying_boy!没能给够你100分,你随便顶一下这两个帖子,我都结给你吧:
http://topic.csdn.net/u/20120519/00/601bcc72-2e3e-4aeb-b326-38c30c2403fa.html
http://topic.csdn.net/u/20121014/15/0339af91-b2a0-4a8b-93c3-04b39d8c93e4.html
当然,能解决问题更好!再次表示感谢!