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前进后退的功能 (五)图片轮换效果
出处:蓝色理想
责任编辑:moby
上一页 Flash 网站的 SEO [4] 下一页
◎进入论坛Flash专栏版块参加讨论
|