关于文摘插件提交表单的开发

作者:第五网络

  要实现的功能就是在浏览器加一个右键快捷方式提交所选的网页或图片内容!实例应用在博客程序里,就是在你已登陆的情况下,浏览网页时看到比较好的新闻或图片!你就可以选中内容--》点右键 出现“加入我的网摘”,这时就会弹出一个IE窗口,自动将网页标题加入表单的对应标题内容,及选中内容加入相应内容项,还有引用网址等!

首先我们用文本编辑器写入:

Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt]
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\将此页加到我的网摘]
@="http://www.xxxxx.com/UserManage/addblog.asp"

另存为.REG文件,即写入注册表项添加右键菜单。

UserManage/addblog.asp为处理页
源文件如下:

<html>
<head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">
<title></title>
</head>
<body lang="zh-CN">
<form id=form1 action="User_Post_Blog2.asp" method="post">
<P>
<input type="hidden" name="title" id=title1>
<input type="hidden" name="url" id=url1>
<input type="hidden" name="js" id=js1>
<TEXTAREA id=content1 style="DISPLAY: none" name="content"></TEXTAREA> </P>
</form>
</body>
</html>

<script language="Javascript">

  var oWin = external.menuArguments;
  var oDoc = oWin.document;
  var titlestr;
  var start, end;
  var getzy;
  start = end = -1;
  titlestr = oWin.document.selection.createRange().text;
  for( var i = 0; i < titlestr.length; i++ )
  {
   if( start == -1 )
    if( titlestr.charAt( i ) == '\n' || titlestr.charAt( i ) == '\r' )
     continue;
    else
     start = i;
   else if( titlestr.charAt( i ) == '\n' || titlestr.charAt( i ) == '\r' )
   {
    end = i;
    break;
   }
   
  }
 
  if( start != -1 && end != -1 && start < end )
   form1.title1.value = oDoc.title;
  else
   form1.title1.value = oDoc.title;
  

  for( var i = 0; i < oDoc.images.length; i++ )
  {
   oDoc.images( i ).src = oDoc.images( i ).src;
  }

  for( var i = 0; i < oDoc.links.length; i++ )
  {
   oDoc.links( i ).href = oDoc.links( i ).href;
  }

  form1.url1.value =  oDoc.URL ;
  getzy = oDoc.selection.createRange().text;
  form1.js1.value =  getzy.substr(0, 250)+"..." ;
  form1.content1.innerText = oWin.document.selection.createRange().htmlText; 
 
  form1.submit();
</script>

相信很多人都看懂了,上面是一个普通的表单,下面是一个script,关键还在下面:
oDoc.title 网页标题
oDoc.URL网页地址
getzy = oDoc.selection.createRange().text; '以文本方式取得所选 的内容
form1.js1.value = getzy.substr(0, 250)+"..." ; '取得前250个字符,之…结束,作为简介
form1.content1.innerText = oWin.document.selection.createRange().htmlText; HTML方式取得所选内容
form1.submit(); 自动提交表单到FORM里的ACTION即:User_Post_Blog2.asp
到这里已经做到了信息的获取!之后就是普通的ASP表单处理了!
像标题的VALUE就用value=<%=request("title")%>
其它的照样子搬就是了!

标签: none

评论已关闭