Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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 Amcharts graph-图表列到自定义URL的超链接,可在新选项卡/窗口中打开_Javascript_Url_Amcharts - Fatal编程技术网

Javascript Amcharts graph-图表列到自定义URL的超链接,可在新选项卡/窗口中打开

Javascript Amcharts graph-图表列到自定义URL的超链接,可在新选项卡/窗口中打开,javascript,url,amcharts,Javascript,Url,Amcharts,我正在尝试创建一个带有链接到自定义URL的列的amcharts图形,并希望URL在新的选项卡/窗口中打开。我尝试将此代码添加到graph对象,但不起作用,它正在同一选项卡/窗口中打开链接- "listeners": [{ "event": "clickItem", "method": function(event) { window.open(event.serialDataItem.dataContext.url, '_blank'); } }],

我正在尝试创建一个带有链接到自定义URL的列的amcharts图形,并希望URL在新的选项卡/窗口中打开。我尝试将此代码添加到graph对象,但不起作用,它正在同一选项卡/窗口中打开链接-

"listeners": [{
      "event": "clickItem",
      "method": function(event) {
window.open(event.serialDataItem.dataContext.url, '_blank');
      }
    }],
请告诉我我做错了什么。我不想使用Jquery,而且我对javascript还是新手

这是我的片段-

var chart=AmCharts.makeChart(“chartdiv”{
“类型”:“串行”,
“主题”:“光”,
“数据提供者”:[{
“国家”:“美国”,
“访问”:2025年,
“url”:”https://en.wikipedia.org/wiki/United_States"
}, {
“国家”:“中国”,
“访问”:1882年,
“url”:”https://en.wikipedia.org/wiki/China"
}, {
“国家”:“日本”,
“访问”:1809年,
“url”:”https://en.wikipedia.org/wiki/Japan"
}, {
“国家”:“德国”,
“访问”:1322次,
“url”:”https://en.wikipedia.org/wiki/Germany"
}, {
“国家”:“法国”,
“访问”:1114,
“url”:”https://en.wikipedia.org/wiki/France"
}, {
“国家”:“印度”,
“访问”:984,
“url”:”https://en.wikipedia.org/wiki/India"
}, {
“国家”:“西班牙”,
“访问”:711,
“url”:”https://en.wikipedia.org/wiki/Spain"
}],
“价值轴”:[{
“gridColor”:“#FFFFFF”,
“gridAlpha”:0.2,
“dashLength”:0
}],
“网格图”:没错,
“起始持续时间”:1,
“图表”:[{
“文本”:“[[category]]:[[value]]”,
“填充字母”:0.8,
“lineAlpha”:0.2,
“类型”:“列”,
“valueField”:“访问”,
“听众”:[{
“事件”:“点击项目”,
“方法”:函数(事件){
window.open(event.serialDataItem.dataContext.url,“u blank”);
}
}],
“url字段”:“url”
}],
“图表光标”:{
“CategoryBallooneEnabled”:false,
“cursorAlpha”:0,
“可缩放”:错误
},
“类别字段”:“国家”,
“分类法”:{
“网格位置”:“开始”,
“gridAlpha”:0,
“滴答声位置”:“开始”,
“滴答声长度”:20
}
});
html,正文{
宽度:100%;
身高:100%;
边际:0px;
}
#沙特迪夫{
宽度:100%;
身高:100%;
}

更改

"listeners": [{
      "event": "clickItem",
      "method": function(event) {
window.open(event.serialDataItem.dataContext.url, '_blank');
      }
    }],

您可以使用以下选项:

var chart=AmCharts.makeChart(“chartdiv”{
“图表”:[{
“文本”:“[[category]]:[[value]]”,
“填充字母”:0.8,
“lineAlpha”:0.2,
“类型”:“列”,
“valueField”:“访问”,
“url字段”:“url”,
“urlTarget”:“\u blank”
}],
...
};

如果您将
window.open()
分配给
var
,那么(只要您有CORS访问权限),您就可以像
newWindowVar.document.getElementById()一样操作
等。或者您可以链接到特定页面并使用
target=''blank'
。记住要遵守XHTML,您需要使用JavaScript分配目标属性。@PHPglue什么是CORS访问?您可以尝试使用此代码段或jsfiddle跨源资源共享。如果您同时创建两个pag在同一个域上,您不必担心。如果不在,您需要其他站点的许可才能在他们的站点上使用您站点的JavaScript。@PHPglue我对JavaScript非常陌生。这就是为什么我放了完整的代码片段/jsfiddle。您能在回答中编辑并显示工作方法吗?我在Amcharts API co中对此进行了更改de(请参阅我问题中的代码片段)。但它仍然会在单击列时在同一选项卡/窗口中打开自定义url
listeners:[{
  event:'clickItem',
  method:function(event){
    open(event.item.url, '_blank');
  }
}]
var chart = AmCharts.makeChart("chartdiv", {
  "graphs": [{
    "balloonText": "[[category]]: <b>[[value]]</b>",
    "fillAlphas": 0.8,
    "lineAlpha": 0.2,
    "type": "column",
    "valueField": "visits",
    "urlField": "url",
    "urlTarget": "_blank"
  }],
  ...
};