我们如何使用actionscript在flex中单击按钮或链接按钮时为页面添加书签
3 回答
基于先前答案中的信息的工作示例:
bookmarks.js(将其添加到您的 html-template 目录中):
function CreateBookmarkLink(title, url)
{
if (window.sidebar) { // Mozilla Firefox Bookmark
window.sidebar.addPanel(title, url,"");
} else if( window.external ) { // IE Favorite
window.external.AddFavorite( url, title); }
else if(window.opera && window.print) { // Opera Hotlist
return true; }
}
然后将此行添加到index.template.html:
<script src="bookmarks.js" language="javascript"></script>
现在,您有了 JavaScript 代码“包装”了您的 Flex 应用程序,可以通过此代码 ( bookmarks.mxml ) 调用它:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
public function AddBookmark() : void
{
ExternalInterface.call("CreateBookmarkLink",
"Stack Overflow",
"http://www.stackoverflow.com");
}
]]>
</mx:Script>
<mx:Button x="10" y="10" label="Bookmark!" click="AddBookmark()"/>
</mx:Application>
在 IE 上测试。
您必须为此使用javascript。只需创建一个 javascript 函数来为托管 swf 的 html 文件中的页面添加书签,然后使用 ExternalInterface 从 swf 内部调用该函数。
这是一个用于书签的 javascript 函数示例:http: //labnol.blogspot.com/2006/01/add-to-favorites-ie-bookmark-firefox.html
这是有关如何使用 ExternalInterface 的 Flex 文档: http://livedocs.adobe.com/flex/2/docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file= 00001009.html
AFAIK,你不能直接从动作脚本中做到这一点。但是,您可以从动作脚本中调用 javascript 来取消ExternalInterface
类,并且网络上充斥着用于创建书签的 javascript 函数。看看这个,例如(我没有测试过)。