字符串中的 html 数据制作可点击的 html 链接 AS3/Flex

发布于 2024-11-18 13:11:17 字数 616 浏览 1 评论 0原文

我有一个场景,我得到一个带有 html 数据的字符串,这不仅仅是 html 数据,它是保存为 html 文件并放入字符串中的电子邮件(Outlook)。

现在需要将该字符串格式化为 html 文档,并且应该是数据网格中的可单击链接。因此,当我单击该链接时,应该会弹出 HTML 文档,并且应该为我提供一个普通用户可读的漂亮 HTML 页面。我希望我想要什么 o_0 清楚一点。

我不知道从哪里开始。

您可以从这里下载示例 html: http://www.mediafire.com/?b2gfwymw70ynxir

谢谢!

---编辑

希望我能解释得更好一点。我需要创建一个链接,当他们点击它时,他们会得到一个 HTML 页面。 字符串变量中包含 HTML 数据,准确地说,是上面 HTML 示例的源数据。 例子: <代码> 公共var html:字符串=示例文件的源代码;

HTML页面的整个源代码都在我的变量html中。现在我需要将其设为一个链接,当他们单击它时,他们将立即获得 html 页面(作为弹出窗口)。

I have a scenario that I get an string with html data, this is not just html data it's an email (outlook) saved as an html file and dropped in the string.

Now this string needs to be formatted to an html document and should be a clickable link in a datagrid. So when I click on the link, the HTML document should pop-up and should gave me a nice HTML page that is readable for the normal users. I hope it's a bit clear what I want o_0.

I don't know where to start.

You can download the example html from here: http://www.mediafire.com/?b2gfwymw70ynxir

Thanks!

---edit

Hopefully I can explain it a little bit better. I need to create an link and when they click on it they get an HTML page.
The string variable has HTML data in it, to be precise, the source data of the HTML example above.
example:


public var html:String = source_code_of_example_file;

The entire source code of the HTML page is in my variable html. Now I need to make this an link and when they click on it, they will get the html page (as pop-up) on the fly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

但可醉心 2024-11-25 13:11:17

您可以使用 htmlText 属性,然后指定 CSS 来执行正确的格式设置:

<mx:TextArea id="resourceText" height="100%"  width="100%"
            styleName="resourceText" editable="false" 
            styleSheet="{resourceStyleSheet}" htmlText="{html}"/>

要读取样式表,我在模型中声明它:

public var resourceStyleSheet : StyleSheet;

它从外部文件中读入:

private function loadCSS():void {           
   var urlLoader:URLLoader = new URLLoader();
   urlLoader.addEventListener(Event.COMPLETE, cssCompleteHandler);
   urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

   try {
     urlLoader.load(new URLRequest("folder/base-html.css"));
   } catch (error:Error) {
     Alert.show("Unable to load requested document.");
   }            
}

private function cssCompleteHandler(event:Event):void {
  // Convert text to style sheet.
  var styleSheet:StyleSheet = new StyleSheet();
  styleSheet.parseCSS(URLLoader(event.currentTarget).data);
  // Set the style sheet.
  model.resourceStyleSheet = styleSheet;
}

private function ioErrorHandler(event:IOErrorEvent):void {
  trace("ioErrorHandler: " + event);
}   

这会将其放入模型中,然后使确保resourceStyleSheet在使用时是可绑定的(我实际上在设置为模型值的视图上设置了一个可绑定变量。

You can use the htmlText property and then specify a CSS to perform the proper formatting:

<mx:TextArea id="resourceText" height="100%"  width="100%"
            styleName="resourceText" editable="false" 
            styleSheet="{resourceStyleSheet}" htmlText="{html}"/>

To read in the style sheet I declare it in the model:

public var resourceStyleSheet : StyleSheet;

It gets read in from an external file:

private function loadCSS():void {           
   var urlLoader:URLLoader = new URLLoader();
   urlLoader.addEventListener(Event.COMPLETE, cssCompleteHandler);
   urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);

   try {
     urlLoader.load(new URLRequest("folder/base-html.css"));
   } catch (error:Error) {
     Alert.show("Unable to load requested document.");
   }            
}

private function cssCompleteHandler(event:Event):void {
  // Convert text to style sheet.
  var styleSheet:StyleSheet = new StyleSheet();
  styleSheet.parseCSS(URLLoader(event.currentTarget).data);
  // Set the style sheet.
  model.resourceStyleSheet = styleSheet;
}

private function ioErrorHandler(event:IOErrorEvent):void {
  trace("ioErrorHandler: " + event);
}   

This will get it into the model, but then make sure resourceStyleSheet is bindable when you use it (I actually set a bindable variable on the view that I set to the model value.

浅语花开 2024-11-25 13:11:17

目前还不清楚你想做什么。

如果您的问题是需要在 Flex 中显示 HTML 格式的文本,则有一个组件可以执行此操作

http ://code.google.com/p/flex-iframe/

-- 编辑后更新

如果您的目的是在用户点击链接后打开 html 弹出窗口,您可以使用ExternalInterface 调用 JavaScript 函数来做到这一点。

希望有帮助

It's not really clear what you want to do.

If your problem is you need to show HTML formatted text in flex there is a component which can do this

http://code.google.com/p/flex-iframe/

-- update after edit

If your intention is to open a html popup once the user clicks on the link you could use ExternalInterface to call a javascript function to do this.

Hope it Helps

蝶…霜飞 2024-11-25 13:11:17

在 Flex Web 应用程序中显示 HTML 没有简单的方法(这是一个 Web 应用程序,对吧?)。就像 Xavi Colomer 所说,您可以使用 Flex Iframe,但速度非常慢,它需要您将 swf 的显示模式更改为不透明,这可能会导致更多问题,具体取决于您的应用程序。

您可以在浏览器中打开一个新页面,用于显示 HTML。例如:有关

http://www.yourcooldomain.com/bla/displayTheHtml.php?oneTimeId=jhsfg765437gro734

如何执行此操作的更多信息,请访问 flex 此处

在另一边(服务器),我假设您将此 html 消息保存在数据库中(?),因此使用 php(或您正在使用的任何内容:P)显示它们应该很容易。

如果您要选择此路径,请注意安全性:

displayTheHtml.php?oneTimeId=jhsfg765437gro734

中的 oneTimeId实际上应该是一次性 ID。

There is no easy way to display HTML in a flex web application(this is a web application, right?). Like Xavi Colomer said you can use the Flex Iframe but is terribly slow, it requires you to change the display mode for your swf to opaque and this can cause more problems, depending on your application.

You could open a new page in the browser that will be used to display the HTML. Something like:

http://www.yourcooldomain.com/bla/displayTheHtml.php?oneTimeId=jhsfg765437gro734

More info on how to do this from flex here.

On the other side(server) I assume that you keep this html messages on a database(?) so displaying them using php(or whatever you are using :P) should be easy.

If you are gonna choose this path be careful about the security: oneTimeId in

displayTheHtml.php?oneTimeId=jhsfg765437gro734

should really be an one tyme only id.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文