统计在线人数...

Flash 网站的 SEO

[ 来源:蓝色理想 | 作者:HBrO | 时间:2006-8-29 上午 10:30:58 | 浏览:统计中... ]

段代码是把解析XML文件的,不属本教程的重点,故不再赘述。
这其中的loadNews函数是调用新闻的,在下面添加:

var contentsLv = new LoadVars();
function loadNews(href) {
       contentsLv.load(href);
       fscommand("setAddress",href)//让新闻加载的时候,修改地址栏#后的内容。这将在JS里定义。
}
contents.html = true;
contentsLv.onData = function(src) {
       fscommand("setTitle",getTitle(src))//setTitle修改页面的标题,也在JS里定义。getTitle从html字符串里获得标题。该函数在AS里定义
       contents.htmlText = getContents(src);//getContents从html字符串里获取正文内容,将在AS里定义。

下面定义这两个字符串分析函数:
分页html的格式:

<title>新闻标题</title><script language="javascript" src="toNews.js"></script><body>正文内容</body>

function getTitle(str){
       var beginIndex=str.indexOf("<title>")+7//标题符从<title>标签开始
       var endIndex=str.indexOf("</title>")//结束于</title>标签
       return str.slice(beginIndex,endIndex)//标记后用slice函数截得
}
function getContents(str){
       var beginIndex=str.indexOf("</title>")+8//正文可以从</title>开始,也可以选择<body>标签
       return str.slice(beginIndex)//标记后用slice截取。
}
};

保存FLA文件到index.html所在目录,文件名为index_flash.fla。然后点“文件”-“发布设置”,在HTML选项卡里,模板下拉选择“带FSCOMMAND跟踪的FLASH”,然后点“发布”按钮。接着在“格式”选项卡里把HTML勾去掉。

4、 此时用记事本打开生成的index_flash.html,找到//代码放在此处(Place your code here)这句,在index_flash_DoFSCommand函数里写:

       if(command=="setTitle"){
          theTitle=args
        }
        if(command=="setAddress"){
          document.location.hash=args
        }

然后,在该函数外定义一个设置标题的函数:

function setTitle(){
  document.title=theTitle
  id=setTimeout(setTitle,1000)
}

之所以使用周期回调,不知道是不是BUG的缘故,经常改完标题后,都会自动改回来,或者多个#号什么的。
现在,还需要在加载后通过JS调用Flash的loadNews函数。在Flash 8控件里头,可以通过CallFunction轻松调用函数,AS3甚至通过ExternalInterface可以直接在JS里写AS函数,但是目前还有少数用户的PLAYER处在7的阶段,所以就先介绍老方法:setVariable。
该方法可以设FLASH控件的变量值,但是如何通过改变量触发Flash的loadNews函数呢?这里介绍AS里头的addProperty方法。
Object.addProperty(proname:String,getter:Function,setter:Function)
proname,属性名称。
getter,当读取变量时调用的函数。
setter,当设置变量时调用的函数。
我们通过添加一个这样的属性,让JS的setVariable执行的时候,调用该函数。
AS里追加:

this.addProperty("link",getLink,setLink)
function getLink(){
}
function setLink(link){
       loadNews(link)
}

不知道为什么,如果不定义getLink,这个setLink也不可用,所以只好把这形式弄上去。

所以,此时可以在JS里添加这么个函数:

function JS_loadNews(){
  if(document.location.hash.slice(1)!=""){//假如#号后面不带参数
    index_flash.setVariable("link",document.location.hash.slice(1))//就设定FLASH里的link值,从而调用里头的loadNews函数。
  }
}

然后在body标签里加onload=JS_loadNews()
此时,重定向到FLASH页面,并且真实反映相关内容的过程已经完成。虽然本质是一种作弊行为,但是已经没有欺骗用户了。

最后,往百度提交index.html,就可以给百度收到4个页面了。当然,内容要合法,否则也会给拒绝收录。
至于如何提高排名,那是内容的问题了,不是技术层面的东西,就不在这讨论了。一般来说,META的关键字标签的合理使用,会对提高排名有一定的作用。

附:测试地址
http://hbro.cincn.com/hbro/course/FlashWebSEO/index.html
http://hbro.cincn.com/hbro/course/FlashWebSEO/page1.html

经典论坛讨论
http://bbs.blueidea.com/viewthread.php?tid=2668685

Flash全站的技术应用系列
(一)AS+JS的Flash网站无刷新定位技术 
(二)Flash网站的SEO(搜索引擎优化
(三)Flash网站的流量统计 (本文)
(四)让Flash网站具有IE前进后退的功能

上一页  [1] [2] 

共有0人参与评价,平均得分:0分
评论内容只代表网友观点,与本站立场无关! 查看完整内容
   

当前在线人数
QQ:748838 MSN:allen_xia#msn.com E-mail:allenxia666#126.com QQ群:站长联盟北方区-北京(28200145) 站长联盟南方区-上海(67713522)