首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

收藏此问题 发表新评论

请教严重的弹出窗口问题

我们页面的文字都是用发布系统动态输出的。
现在我想打开一个flash,690*500,想让弹出页面无边框和滚动条。
这样的效果一般是这样实现的
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
//-->
</script>


<p onclick="MM_openBrWindow('www.sohu.com','','width=400,height=300')">
1111111111111
</p>



但是关键是我们的内容是动态输出的,输出来代码肯定是这样<a href=' /2945/2004/03/30/843@113676.htm' target=_blank>CBA扩军新联赛明年启动 成绩好收入高仿造NBA</a><font class=fontstyle> 03月30日 16:00</font>    



所以只能在这段完整的链接文字外部控制它打开窗口的大小。

window.open(theURL,winName,features);

这句根本就不能用,因为需要在这段代码里加URL,实现不了,我们输出就是带<a>标记的完整文字。


请高手指点了。万分感谢~~~
昵称: 果儿本本  时间: 2004-05-19 18:03:00
你说得不清楚啊,你们网站地址是什么?
你们的系统是不是新闻发布系统?
也就是后台输入标题和内容然后浏览者点击标题浏览,而现在你想浏览者点一个标题谈出一个窗口来播放flash?
昵称: leinchu  时间: 2004-05-19 18:54:00
如果是的话要看你们的标题能不能支持html,你也可以修改源文件啊
昵称: leinchu  时间: 2004-05-19 19:10:00
没看明白。。。

到底想做什么?

自适应的窗口?
昵称: longhorn  时间: 2004-05-19 19:20:00
我是没说清楚,我们是新闻发布系统。我们的那些程序是动不得的。我现在就做这样一个模版页面
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=??????">
<title>无标题文档</title>
</head>

<body>
<!--gd_1 -->
</body>
</html>


<!--gd_1 -->  这个标记就是用数据库输出的,输出后就是这样

<a href=' /2945/2004/03/30/843@113676.htm' target=_blank>CBA扩军新联赛明年启动 成绩好收入高仿造NBA</a>


就是说我不能在<A>里控制行为。因为我的标记<!--gd_1 -->   会以这段文字替代   <a href=' /2945/2004/03/30/843@113676.htm' target=_blank>CBA扩军新联赛明年启动 成绩好收入高仿造NBA</a>



所以我只能在<A></A>之外来控制行为(打开固定大小的窗口)

但是一般用法是这句来实现  <script language="JavaScript" type="text/JavaScript">
<!--
function MM_openBrWindow(theURL,winName,features) { /2.0
  window.open(theURL,winName,features);
}
//-->
</script>


但theURL我又不能设置成固定的,所以很麻烦。~~谁能帮我。
昵称: 果儿本本  时间: 2004-05-19 22:52:00
可能大家没用过,我们的发布系统是千龙网的“龙讯2.0”这些程序是不能改的。
我现在要做模版。

<!--gd_1 -->

是用数据库内容来替换的。只能替换成这样格式的(带链接)
<a href=' /2945/2004/03/30/843@113676.htm' target=_blank>CBA扩军新联赛明年启动 成绩好收入高仿造NBA</a>


但我每次签不同的新闻,链接都会变,所以不可能在window.open(theURL,winName,features);
}

里改theURL的值啊
昵称: 果儿本本  时间: 2004-05-19 22:55:00
别人建议“是不是可以”把<a href="">里面的URL作为一个参数传递给一个程序,然后由这个程序来控制打开窗口的大小。
小弟水平差了,请各位帮帮忙。555
昵称: 果儿本本  时间: 2004-05-19 23:03:00
如果你的那个发布系统真的那么烂又不能动的话。
就只好把这个超链接屏蔽掉然后再用JS取得这个A的HREF属性了。

具体方法:

1、屏蔽超链接,这个很简单,这样写就能屏蔽掉这个超链接:
<div style="displey:none;" id="a1">
<!--使得超链接出现在这里-->
</div>

2、取得超链接的HREF属性。
其实这是两个步骤,第一步是取得这个超链接的对象。方法是,上面的div已经指定了id属性,所以可以很简单的取到。然后搜索它下面的子元素,找出TagName为A的,获得HREF属性。具体的语法不记得了,相信longhorn这个老好人一定会给你答案的,我就不罗嗦了。。。。
昵称: Ivony  时间: 2004-05-19 23:29:00
或者你也可以捕获单击事件,但个人认为那样太麻烦,还不如屏蔽重做超链接。。。。伪装成一个超链接很简单,而且还能自己修改超链接的样式。。。
昵称: Ivony  时间: 2004-05-19 23:45:00
经过Ivony解释。。哈哈。:)

我有点明白了,就是你的页子上的超链接的模式不可以动了。。但你还想,点击后是打开一个模式窗口。
如果是这样的话
以下代码能解决;把<script>部分,拷贝到你的页子<head></head>之间。
<html>
<head>
<script>
function document.onclick()
{
   if(event.srcElement.tagName == "A")
   {
       window.open(event.srcElement.href,"WIN","height=300,width=300");
        return false;
   }
   
}
</script>
</head>
<body>
<A href="http://www.phpx.com">喜悦村</A>
</body>
</html>

顺便说一嘴,,帮别人解决问题真的能提高自己的水平
哈哈,大家的问题千奇百怪,能让自己的思路也变得开阔。
昵称: longhorn  时间: 2004-05-20 00:23:00
这么难的问题,几位大哥这么简单就实现了~佩服的五体投地。。。。
昵称: 果儿本本  时间: 2004-05-20 00:36:00
哎。。。

不过,楼主啊。反正咱俩的语文,,有一个人肯定是不好拉,哈哈
昵称: longhorn  时间: 2004-05-20 00:37:00
我是紧张的乱七八糟说不清楚,丢人了。。。但是我想,如果我现在想让这个页面里是固定大小的flash只能在那个页面里加flash了
没办法,我们这系统的限制。我头都大了。。一般很好实现的效果,在我们系统里要考虑很多。。。
昵称: 果儿本本  时间: 2004-05-20 00:47:00
可以了,万分感谢您~~
昵称: 果儿本本  时间: 2004-05-20 00:53:00
昵称: longhorn  时间: 2004-5-20 12:55 AM

可是...可是....我这样一来的话,每个链接都是这样了,如果我想实现某个链接这样,而别的链接正常,是不是就不可能了?
是不是只能IFRAME它了?
昵称: longhorn  时间: 2004-05-20 00:55:00


QUOTE:
最初由 果儿本本 发布
[B]可是...可是....我这样一来的话,每个链接都是这样了,如果我想实现某个链接这样,而别的链接正常,是不是就不可能了?
是不是只能IFRAME它了? [/B]
longhorn说的是第二种办法,我就猜你会提出这种问题,所以才建议你屏蔽掉超链接,然后重做。没法子,偶帮你测试代码吧,哎哟,我的Dreamweaver呢?
昵称: 果儿本本  时间: 2004-05-20 01:09:00
好了,在后面补充。

CODE:
[Copy to clipboard]
2、取得A元素:
document.all("a1").children(0)

也就是说:
document.all("a1").children(0).href
就是超链接的地址。
document.all("a1").children(0).innerHTML
就是<a>.......</a>之间的内容。

3、伪装链接。
这个就很简单了。
<span style="cursor:hand;" onclick=".......">
插入链接的信息。
</span>

就能伪装成超链接。
总体来说,办法就是插入下列代码替换:

CODE:
[Copy to clipboard]
<span style="displey:none;" id="a1">
<!--gd_1 -->
</span>

<span style="cursor:hand" onclick="window.open(document.all('a1').children(0).href,'WIN','height=300,width=300');">
<script language="javascript">
document.write(document.all("a1").children(0).innerHTML);
</script>
</span>
昵称: Ivony  时间: 2004-05-20 01:46:00
不测试了,其实longhorn的办法也能用,只要加入一个判断父元素是谁,然后弄个带id属性的span把要转换的超链接围住就行了。

解释一下children(0)和innerHTML。
children是获得当前元素的子元素,0是索引号。在上面的例子中,我们的span只可能有一个子元素就是那个超链接,所以直接用children(0)就能引用到。
innerHTML是获得开始和结束标签之间的HTML代码。它的兄弟是innerTEXT,是获得文本的。
昵称: Ivony  时间: 2004-05-20 02:15:00
哈哈,,兄弟,就是这么弄地。 握手

我让他把需要窗口模式的都放在一个固定id的<td>里了。

然后根据连接的parentElement.id来判断是否需要窗口模式!
昵称: Ivony  时间: 2004-05-20 02:22:00
感谢Ivony!!万分感谢
昵称: longhorn  时间: 2004-05-20 02:24:00
才发现display都拼错了。。。。。。

呵呵,,,想到一块儿去了。。。。握手。。。。。该睡觉了。。。。
昵称: 果儿本本  时间: 2004-05-20 02:24:00
谢谢各位的帮助!!
昵称: Ivony  时间: 2004-05-20 03:20:00