Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过动态超链接单击事件的调用方法传递对象或字符串 hyperLink=“” 返回超链接;_Javascript_Jquery_Object_Dynamic_Hyperlink - Fatal编程技术网

Javascript 通过动态超链接单击事件的调用方法传递对象或字符串 hyperLink=“” 返回超链接;

Javascript 通过动态超链接单击事件的调用方法传递对象或字符串 hyperLink=“” 返回超链接;,javascript,jquery,object,dynamic,hyperlink,Javascript,Jquery,Object,Dynamic,Hyperlink,这是我的密码。我现在传递一个整数。我需要传递一个物体。如果我传递一个对象,它会将其作为字符串“[object]”。请帮忙 让它成为json是可行的。然而,我有另一个问题,我也在尝试传递字符串。比如: hyperLink = "<a href='#' id='hplinkactionUrl_" + options.rowId + "' onclick='" + options.colModel.CallMethod + "(" + options.rowId + ")' style

这是我的密码。我现在传递一个整数。我需要传递一个物体。如果我传递一个对象,它会将其作为字符串“[object]”。请帮忙

让它成为json是可行的。然而,我有另一个问题,我也在尝试传递字符串。比如:

     hyperLink = "<a href='#' id='hplinkactionUrl_" + options.rowId + "' onclick='" + options.colModel.CallMethod + "(" + options.rowId + ")' style='text-decoration:underline; color:#3361b8;'>" + cellvalue + "</a>"
return hyperLink;
hyperLink=“”

这很有效。但是当我传递一个字符串(路径)如“\ServerName\FolderName\File”时,调用方法中的反斜杠“\”就丢失了。请提供帮助。

您需要以某种方式将对象序列化为字符串,并在click handler中将其反序列化。你可以用它

hyperLink = "<a href='#' id='hplinkactionUrl_" + options.rowId + "' onclick='" + options.colModel.CallMethod + "(" + options.rowId + ",\"" + cellvalue + "\")' style='text-decoration:underline; color:#3361b8;'>" + cellvalue + "</a>"
这将获得一个url编码字符串,其中序列化对象作为
CallMethod
的参数

encodeURI(JSON.stringify(SOME_OBJECT))
hyperLink=“”

使用
JSON.parse(decodeURI(序列化的_对象))
将其返回
CallMethod
将对象转换为JSON字符串,然后在下一页解析该字符串。尽管简单地使用会话存储可能更容易

encodeURI(JSON.stringify(SOME_OBJECT))
1) stringify(对象)然后

2) JSON.parse(字符串)


如果对象中有函数,则stringify不会处理这些函数。

您是否尝试将对象作为JSON传递。stringify(“您的对象”)?谢谢。让它成为json是可行的。然而,我有另一个问题,我也在尝试传递字符串。比如:onclick='“+options.colModel.CallMethod+”(“+options.rowId+”,\“+cellvalue+”\”)。。这很有效。Buw当我传递一个类似“\\ServerName\FolderName\File”的字符串时,调用方法中的“\”将丢失。请帮助。\n通常是转义字符,您必须使用\\来转义它,摆弄不同的组合直到它工作。这是我唯一的猜测。使用escape显示了一个错误。去掉那个,成功了。谢谢让它成为json是可行的。然而,我有另一个问题,我也在尝试传递字符串。比如:onclick='“+options.colModel.CallMethod+”(“+options.rowId+”,\“+cellvalue+”\”)。。这很有效。Buw当我传递一个类似“\\ServerName\FolderName\File”的字符串时,调用方法中的“\”将丢失。请提供帮助。
escape()
用于避免生成的html代码出现问题。如果对象中的值包含带引号的字符串,则生成的json字符串将中断链接代码,因为您将json字符串用作属性值。尝试使用
encodeURI()
decodeURI()
而不是escape/unescape。至于字符串文本中的反斜杠问题,请使用其他反斜杠对其进行转义。因此,“\\”将给您一个斜杠(第一个斜杠将“转义”第二个斜杠)。“\\\”将给您两个斜杠。