原文:北京SEO公司,转载请注明链接!
整个网站只使用一个巨大的WSF,不是什么好主意。相反,更好的是创建分开的SWF,每个都有自己的HTML页面。为什么分开的SWF更为可取,原因很多,但这里只列举一些更令人信服的。
l 只有一个WSF的网站,造成的恶果包括:
l 让搜索引擎索引困难很多
l 不能为书签和共享提供唯一的网址
l 阻止直接导航到内容
l 削弱了浏览器的后退按钮功能
l 如果主SWF不加载其它SWF文件,那么可能需要更长时间来加载。
如果SEO至关重要,那么Flash就经常被看作是应该避免的技术,但每个网站都去除Flash也不是很能接受的折中办法。Flash是强大的,引人入胜的技术,可以提升用户体验。正确使用的话,你不需要以会降低搜索引擎可见度为由来牺牲Flash。尤其针对一些表现特殊效果的完全FLASH网站。但必要的设计策略应该被充分的重视。整个网站完全是Flash,这没问题,但一定要使用分开的HTML网页来规避前面提到的那些问题。通过SWFObject混合网站,对完全是Flash的网站不是很实用。它需要你将全部内容写在HTML中,然后在Flash中再重复一次。不管什么理由,如果你需要改变内容,那么你会有两倍多的工作。更聪明的是将内容集中再一个地方,并让代码代劳。有两种方法可以做到这一点。
第一个方法需要将所有内容输入数据库。使用PHP或另一种服务器端的脚步语言,你可以将内容写入Flash文件嵌入的HTML网页中。另一个服务器端的脚本可以产生内容相同的XML页,Flash可以轻易地链接并使用它。XML的源Flash将链接到真正输出XML内容的PHP文件。虽然这种方法需要一点点额外的努力来创建XML生成脚本,但这只是一次性构建,维护起来很简单。
把网站所有内容都纳入数据库页将使之绑定到内容管理系统(CMS)中,或者是你自己创造的。使用CMS可以使当前的内容更加容易,并使客户能够管理自己的网站。数据库的所有内容都将被存储在那里,并且前端能够在HTML和Flash格式中提供同样的内容。如果创建PHP脚本来写XML难度过大,你可以选择两一个办法。
一旦用HTML建立了网站结构并整合了所有内容,你就可以把它和SWFObject标记一起传递到Flash中。由于Flash从HTML结构来提取内容,因此HTML的文本有任何改变,也将自动更新到SWF。一旦SWFObject初始化了,你就可用addvariable()函数来发送HTML网页的文本。在这个例子中,我们将创建<div>标签,它包含了所有将传递给Flash的文本。下面是它可能看起来的样子:
< div id=”content”>
<h1>findable Flash</h1>
<p>This text will be passed into a SWF using SWFobject.Once the content is in Flash,you will need to do a little XML parsing to grab nodes and manipulate the content as you like.</p>
</div>
在将SWF写入页面之前,我们用addvariable()传递到HTML文本中。
<script type=”text/javascript” src=”js/sefobject.js”></script>
< script type=”text/javascript” >
var so=new SWFobjecct(“flash-content.swf”,”passdata”,”
var content = document.getElementById(‘content’).innerHTML;
so.addvariable(‘xmlData’,encodeURIComponent(content));
so.write(“content”);
</script>
用一些JavaScript,我们先要抓取< div id=”content”>中的文本。在addvariable()函数内定义定义一个称为xmlData的变量来包含内容,并将在SWF内自动创建。接下来,所有将传递到SWF中的内容都是以网址编码的,因此当载入Flash时,文本中的特殊字符不会引起问题。Flash将传递中的HTML内容看作是XML。这很有意义,因为都是用标签来包围文本的标记语言,在HTML标签中包裹了内容,Flash就能更好地获取单个文本的节点。