求救!!!怎样从一个框架中取出特定的URL,然后打开 (分要多少不是问题,立即结帖)
有一框架网页(如下面代码所示),假如我想从框架top中取出一条含有字符串"http://expert.csdn.net/Expert/"的链接(如http://expert.csdn.net/Expert/PostNew.asp?room=304),然后将这条链接在框架main里面打开
请问高手,这个功能可以实现吗?
由于小弟刚接触javascript,所以可以给我详细一点的代码,好吗? 还有也请告诉我代码放在top.htm还是main.htm或者本身的框架页面(我真的太菜了,不好意思)
谢谢各位了~
<Frameset Rows="40%,60%">
<frame name="top" src="top.htm">
<frame name="main" src="main.htm">
</Frameset>
问题点数:0、回复次数:26Top
1 楼saucer(思归)回复于 2003-11-01 03:06:31 得分 0
"从框架top中取出一条含有字符串"http://expert.csdn.net/Expert/"的链接"???
can you just do in top.htm??
<a href="http://expert.csdn.net/Expert/PostNew.asp?room=304" target="main">room 304</a>Top
2 楼longshenwang(清一色!一条小青龙)回复于 2003-11-01 08:16:14 得分 0
可以实现:
假入在你的top页中的那个需要打开的本身就是超链接 则可以写
<a href="PostNew.asp?room=304" target="main">点击此处</a>
(该链接就在top页中)此时只要 按下 点击此处 几个字就可以在main中显示了Top
3 楼longshenwang(清一色!一条小青龙)回复于 2003-11-01 08:20:12 得分 0
加入 http://expert.csdn.net/Expert/PostNew.asp?room=304 仅仅是top页面中的一个字符串
则需要通过 触发某个事件来 进行页面刷新处理
如: 点击一个按钮 <input type=button value=点我 onclick="test();">
<script>
function test(){
self.parent.frames['main'].location.href="PostNew.asp?room=304";
}
</script>
以上两种情况都可以完成你需要的页面转换Top
4 楼colee(冷面 ◎ 虚者神头)回复于 2003-11-01 10:50:47 得分 0
放在本身的框架页面就行了
onclick="javascript:top.frames['main'].location.href='http://expert.csdn.net/Expert/PostNew.asp?room=304'"Top
5 楼mycl3344(都市浪人)回复于 2003-11-01 13:55:49 得分 0
<a href="http://expert.csdn.net/Expert/PostNew.asp?room=304" target="main">.... /a>Top
6 楼riffleliu(流水)回复于 2003-11-01 15:47:10 得分 0
longshenwang(独眼龙)的兩種方法很好,也是經常用的。Top
7 楼avonqin(不再看连续剧)回复于 2003-11-01 20:34:36 得分 0
死鬼(saucer),来无影,去无踪Top
8 楼guidy(guidy)回复于 2003-11-01 20:41:07 得分 0
不好意思,我表达错误了,代码如下才对
网页载入后,在top打开一个页面(如代码所示),这个页面有很多帖子的链接,
例如:http://www.chinaycg.com/bbs/viewthread.php?tid=33907&fpage=1
http://www.chinaycg.com/bbs/viewthread.php?tid=35178&fpage=1
然后,在main里面搜索top里面的全部链接,找到一个含有"http://www.chinaycg.com/bbs/viewthread.php?tid="的链接,并将它在main里面打开.
请问可以吗?我看过有些特效可以显示页面的全部链接,不知原理是否有相关
都是我的错,搞到大家瞎忙活了,因此这个问题我再加 100 分,解决后立即结帖并另开新帖给分
谢谢各位高手了 : )
<Frameset Rows="40%,60%">
<frame name="top" src="http://www.chinaycg.com/bbs/forumdisplay.php?fid=90&sid=lQd0hY">
<frame name="main" src="main.htm">
</Frameset>Top
9 楼wanghr100(灰豆宝宝.net(努力工作))回复于 2003-11-02 10:32:24 得分 0
test.htm
<frameset COLS="25%,*">
<frame name="frm1" src="searchlinks.htm">
<frame name="main" src="main.htm">
</frameset>
searchlinks.htm
<a href="http://www.csdn.net">csdn</a><br>
<a href="http://www.cnlk.com">cnlk</a><br>
<script>
var hreflinks=document.links;
var searchlinks="http://www.csdn.net/";
for(var i=0;i<hreflinks.length;i++) {
if(searchlinks==hreflinks[i]) top.main.location.href=hreflinks[i];
}
</script>
Top
10 楼saucer(思归)回复于 2003-11-02 10:44:26 得分 0
the browser doesn't allow you to access the object model for a page from another domainTop
11 楼bzscs(沙虫 我爱小美)回复于 2003-11-02 10:53:18 得分 0
翻译为中文就是:javascript不准跨域操作Top
12 楼longshenwang(清一色!一条小青龙)回复于 2003-11-02 11:37:56 得分 0
使用 wanghr100(灰豆宝宝.net) 的方法就可以了!Top
13 楼Jorn(周)回复于 2003-11-02 18:28:18 得分 0
请问:for(var i=0;i<hreflinks.length;i++) {
if(searchlinks==hreflinks[i]) top.main.location.href=hreflinks[i];
中hreflinks.length啥意思?
Top
14 楼supere(专心学习Dotnet)回复于 2003-11-02 19:04:03 得分 0
TO Jorn(周) :
看var hreflinks=document.links;
hreflinks是当前页面的所有连接的集合,也就是一个数组
然后hreflinks.length,hreflinks[i],你就都明白了吧
Top
15 楼guidy(guidy)回复于 2003-11-02 20:10:00 得分 0
TO:wanghr100(灰豆宝宝.net)
如果那段SCRIPT代码加在main.htm行吗?因为searchlink.htm我是真接打开的一个链接(如http://www.chinaycg.com/bbs/forumdisplay.php?fid=90&sid=lQd0hY)我不可能在里面加上SCRIPT代码`~~~ :(
<script>
var hreflinks=document.links;
var searchlinks="http://www.csdn.net/";
for(var i=0;i<hreflinks.length;i++) {
if(searchlinks==hreflinks[i]) top.main.location.href=hreflinks[i];
}
</script>Top
16 楼longshenwang(清一色!一条小青龙)回复于 2003-11-03 09:23:06 得分 0
试试:
test.htm
<frameset COLS="25%,*">
<frame name="frm1" src="searchlinks.htm">
<frame name="main" src="main.htm">
</frameset>
searchlinks.htm
<a href="http://www.csdn.net">csdn</a><br>
<a href="http://www.cnlk.com">cnlk</a><br>
main.htm
<script>
var hreflinks=self.top.frames['frm1'].document.links;
var searchlinks="http://www.csdn.net/";
for(var i=0;i<hreflinks.length;i++) {
if(searchlinks==hreflinks[i]) self.location.href=hreflinks[i];
}
</script>
Top
17 楼guidy(guidy)回复于 2003-11-03 14:02:41 得分 0
谢谢楼上的longshenwang(独眼龙)和wanghr100(灰豆宝宝.net)等朋友
以上的代码确实可以通过~ : )
TO: longshenwang(独眼龙)
如果那个searchlinks我不知道它的确实链接,假如只知道它含有"http://www.csdn"
那么我可不可以实现呢?我将你的代码改了一下,可是提示错误说"拒绝访问",可不可以告诉我错在哪里了,可以帮我改一下吗?谢谢~
main.htm
<script>
var hreflinks=self.top.frames['frm1'].document.links;
var searchlinks="http://www.csdn";
for(var i=0;i<hreflinks.length;i++) {
if(hreflinks[i].indexOf(searchlinks)>-1) self.location.href=hreflinks[i];
}
</script>Top
18 楼guidy(guidy)回复于 2003-11-03 16:34:04 得分 0
up~Top
19 楼longshenwang(清一色!一条小青龙)回复于 2003-11-03 16:54:57 得分 0
main.htm
<script>
var hreflinks=self.top.frames['frm1'].document.links;
var searchlinks="http://www.csdn";
for(var i=0;i<hreflinks.length;i++) {
var src=hreflinks[i].toString();
if(src.indexOf(searchlinks)!=-1) self.location.href=hreflinks[i];
}
</script>
这样 写试试!Top
20 楼guidy(guidy)回复于 2003-11-03 18:17:44 得分 0
好奇怪,上面的代码我试过了
test.htm
<frameset COLS="25%,*">
<frame name="frm1" src="htpp://www.csdn.net">
<frame name="main" src="main.htm">
</frameset>
main.htm
<script>
var hreflinks=self.top.frames['frm1'].document.links;
var searchlinks="http://www.csdn";
for(var i=0;i<hreflinks.length;i++) {
var src=hreflinks[i].toString();
if(src.indexOf(searchlinks)!=-1) self.location.href=hreflinks[i];
}
</script>
这样还是提示拒绝访问 : (
test.htm
<frameset COLS="25%,*">
<frame name="frm1" src="searchlinks.htm">
<frame name="main" src="main.htm">
</frameset>
如果是这样的话,就成功通过了,这其中有什么原因吗?Top
21 楼guidy(guidy)回复于 2003-11-04 12:13:26 得分 0
upTop
22 楼guidy(guidy)回复于 2003-11-04 21:39:19 得分 0
再up~Top
23 楼fason(咖啡人生)回复于 2003-11-04 21:43:52 得分 0
跨域访问是不允许的
Top
24 楼hillhero789(丘)回复于 2003-11-04 22:13:58 得分 0
不知道这样能不能实现相当于跨域的功能呢?
先用xmlhttp获得一个页面,然后保存为一个新的页面,然后再把它包含再自己的页面里边。
Top
25 楼fason(咖啡人生)回复于 2003-11-04 22:29:19 得分 0
用xmlhttp如果访问的是不同domain的仍然没有权限获得数据,除非在服务端Top
26 楼guidy(guidy)回复于 2003-11-05 18:13:41 得分 0
一顶再顶~Top




