0

因此,我试图在页面上调用方法,并且我知道要放入方法中的值,但似乎无法使语法正常工作。我觉得,好吧.. lamerized。

好的,这是页面上的 javascript 方法

function ReturnValue (sValue, sText) 
{
     window.focus();
     var oForm = document.EditForm;

     switch (szType)        // Form element name
     {
     case 'agt':
        oForm.agt.value = sText;
        oForm.agentman.value = sValue;
        oForm.agtid.value = sValue;                              
        oForm.getagt.focus();
        break;

     case 'county':     
        oForm.County.value = sValue;
        sCurrentCounty = new String(sValue);
        document.all("CountyDisp").innerHTML = sText;
        document.all("City").value = "";
        document.all("CityDisp").innerHTML = "";
        document.all("Area").value = "";
        document.all("AreaDisp").innerHTML = "";
        break;
   default:
        break;      
     }  // End switch
 return;
}

非常直接的函数,你会假设参数是字符串,对吧?所以在 IE8 脚本调试器控制台中我尝试了这个:

ReturnValue("adf","asdf"); //失败“预期对象”

对象是预期的,嗯,也许我需要单引号作为我接下来假设的字符串(以防万一)。

ReturnValue('adf','asdf'); //失败“预期对象”

好的,只是确保......所以我需要一个存储字符串的对象。如何使用我认为的 var..

var o = "adf"; var p = "dfsa"; 返回值(o,p);//失败“预期对象”

为了确定,我尝试使用单引号。所以毕竟我确信需要一个对象。所以我试图创建一个对象。

o = 新对象();k = 新对象();//{...}

现在我从这里开始不知道如何向对象添加字符串,所以我就这样做了。

o.value = "文本"; k.value = "字段"; // “文本域”

好的,所以现在我感到很兴奋,我有一个带有一些绳子的物体,所以现在我尝试再次将它们放在一起。

ReturnValue(o,z) // EPIC FAIL “预期对象”

我把对象放在那里!现在我回到第一方,有人可以帮忙吗?

好的问题还是没有解决。

经过进一步调查,我发现该脚本确实在页面加载的一开始就运行了一次。我可以调试和中断,当它通过代码暂停时,我可以运行这些方法。但是在我发布并完成声明所有变量之后,我无法运行任何方法。但是,由于某种原因,我尝试运行的相同方法能够使用 Window.Opener.ReturnValue(string,string); 从弹出窗口运行

我不明白!

当我需要你时,Javascript 大师在哪里!

4

3 回答 3

2

假设您在其他地方定义了 szType,我将此函数粘贴到草稿页中并使用它,但我无法在 IE8(或 FireFox 3)中重现此问题。

谷歌搜索,我唯一发现的是一个参考,如果你错误地设置了脚本类型,你可能会得到这个,因为 IE 根本不会解析脚本块。您的脚本块是否设置为“text/javascript”?

如果这不起作用,您能否提供更多涉及的代码(也可能是标记)?

另一方面,您可能想看看使用jQuery或其他 JS 库之类的东西。像这样的特定于浏览器的 JS 是邪恶的(document.all 的死亡)。

于 2009-06-27T01:38:37.677 回答
1

szType 的值是多少?我看不到它被设置在任何地方,也许这就是它正在轰炸的目标?还有,那些document.all 和form。可能不会在 IE 以外的任何东西上工作。document.getElementById('theid') 更适合检索 dom 元素。

另外,您可以尝试在 ReturnValue 函数上设置断点并单步执行吗?我没有以这种方式使用过 IE8 控制台,但我知道您可以通过这种方式进行调试。

编辑它能够以这种方式执行功能吗?也许注释掉ReturnValue 中的所有内容,并确保它可以实际执行函数本身。您可能必须在调试会话中,或通过 window.ReturnValue 调用该函数

于 2009-06-27T01:27:26.390 回答
1

也许 szType、oForm、oForm.agt 等之一为空?

于 2009-06-27T01:27:57.963 回答