0

我需要从 HTML 中获取一个字符串并将其放入 Actionscript。

动作脚本:

import flash.external.ExternalInterface;
protected function getUserName():void{
            var isAvailable:Boolean = ExternalInterface.available;
            var findUserName:String = "findUserName";
            if(isAvailable){
                var foundUserName:String = ExternalInterface.call(findUserName).toString();
                Alert.show(foundUserName);}}

的JavaScript:

function findUserName() {
    var label = document.getElementById("username-label");
    if(label.value != ""){
        alert("the name in the box is: " + label.value);
        return label.value;}
    else
        return "nothing in the textbox";}}

JSP:

<%IUserSession userSession = SessionManager.getSession();%>

<logic:notEmpty name="userSession">
    <logic:notEqual value="anonymous" name="userSession" property="userLoginId">
        <td align="right" width="10%" >
            <input id="username-label" type="text" value="<bean:write name="userSession" property="userLoginId"/>" />
        </td>
    </logic:notEqual>
</logic:notEmpty>

呈现的 HTML:

<td align="right" width="10%">
    <input id="username-label" type="text" value="a-valid-username" />
</td>

当javascript执行命中时

var label = document.getElementById("username-label");

返回 null 并崩溃,没有警报显示没有显示错误消息。我可以通过“用户名标签”(document.getElementById())成功地搜索firefox DOM Inspector

唯一弹出的警告框是动作脚本警告框,内容为空白。

firfox 3.5 windows,容器是Tomcat。

请多多指教,提前谢谢。

4

1 回答 1

0
import flash.external.ExternalInterface;
public function getUserName():void{
      var isAvailable:Boolean = ExternalInterface.available;
      //var findUserName:String = "findUserName";
      if(isAvailable){
      ExternalInterface.call("findUserName");
      }
 }

现在创建一个按钮并调用此函数 getUserName 并尝试在 JavaScript 中放置一条警报消息并查看是否调用。

将方法设为 Public 并让我们知道您是否能够调用 JavaScript 方法名称。查看我在您的功能中所做的更改

注意:受保护的和私有的也可以工作,这只是为了测试。

更多更新:

function findUserName() {
    // We are checking down initially itself.
    if (!document.getElementById) return;
    var label = document.getElementById(username-label);
    alert(label);
    if(label.value != ""){
        alert("the name in the box is: " + label.value);
        return label.value;}
    else
        return "nothing in the textbox";}}

将您的 JavaScript 函数更新到上面并告诉我。

谢谢。

于 2010-05-18T14:19:08.250 回答