如何在点击锚标签时传递对象

时间:2017-12-26 09:32:20

标签: javascript html

我有一个创建锚标签的功能,点击锚标签我传递了一些参数。如何在点击锚标签时传递对象。

这是我的代码

var obj = {
  "Name": "USA",
  "id": 1,
  "CON": "NA",
  "VAl": "TS"
}

if (obj.VAl) {
  obj.text = "<a style='color:#0000ff' onClick='openMyData(event," + obj + ")' href='javascript:void(0);'>" + "</a>";
}

但是点击后我得到未捕获的SyntaxError:意外的标识符调试器未在openMyData触发。如果我给我的价值像obj.VAl那么它就会被解雇。任何人都可以帮助我找到我想要的东西。

onclick甚至代码:

function openMyData(evt, obj){
    var win = window.open('someURL',"","resizable=yes,menubar=no,status=yes,scrollbars=no", fullscreen = "1");
    win.resizeTo(screen.availWidth, screen.availHeight);
    win.moveTo(0, 0);
    win.focus();
}

我希望我的对象在新窗口的范围内。

2 个答案:

答案 0 :(得分:1)

你需要像这样JSON.stringify(obj)

if (obj.VAl) {
  obj.text = "<a style='color:#0000ff' onClick='openMyData(event,'" + JSON.stringify(obj) + "')' href='javascript:void(0);'>" + "</a>";
}

引号括起JSON.stringify(obj)。然后,您可以在openMyData函数中解析它以获取实际对象。

function openMyData(evt, obj){
    var win = window.open('someURL?objValue='+ obj,"","resizable=yes,menubar=no,status=yes,scrollbars=no", fullscreen = "1");
    win.resizeTo(screen.availWidth, screen.availHeight);
    win.moveTo(0, 0);
    win.focus();
}

然后在新窗口中,您可以使用参数objValue获取该值,然后解析该值以获取整个对象。

答案 1 :(得分:-1)

你错过了json变量之间的逗号。

var obj = {
  "Name": "USA",
  "id": 1,
  "CON": "NA",
  "VAl": "TS"
}

if (obj.VAl) {
  obj.text = "<a style='color:#0000ff' onClick='openMyData(event," + obj + ")' href='javascript:void(0);'>" + "</a>";
}