Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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
Pubnub 为什么不';在这个<;预处理>;标签?_Pubnub_Javascript_Jquery_Json_Highlightjs - Fatal编程技术网

Pubnub 为什么不';在这个<;预处理>;标签?

Pubnub 为什么不';在这个<;预处理>;标签?,pubnub,javascript,jquery,json,highlightjs,Pubnub,Javascript,Jquery,Json,Highlightjs,我使用它来显示从订阅接收到的一些JSON。它正在为文本着色,但未按预期添加换行符(通过)。此外,文档中的几个地方给人的印象是库生成了新行。请参阅useBR选项 以下是我当前的代码(我尝试了一些不同的方法): 小提琴:您应该能够使用元素替换css空白设置为pre的 function print_r(object,html){ if(html) return '<pre>' + JSON.stringify(object, null, 4) + '</pre>';

我使用它来显示从订阅接收到的一些JSON。它正在为文本着色,但未按预期添加换行符(通过)。此外,文档中的几个地方给人的印象是库生成了新行。请参阅
useBR
选项

以下是我当前的代码(我尝试了一些不同的方法):


小提琴:

您应该能够使用
元素替换
css
空白
设置为
pre

function print_r(object,html){
    if(html) return '<pre>' +  JSON.stringify(object, null, 4) + '</pre>';
    else return JSON.stringify(object, null, 4);
}  

var m = {"id":"TESTWIDGET1","value":351,"timestamp":"2016-08-31T12:03:24.3403952-05:00"};
var hlt = hljs.highlight('json',print_r(m));
$('#codehere').html(hlt.value);

jsFIDLE

代码中没有任何换行符。highlight函数仅在格式化json字符串时应用格式化选项。您的字符串只有一行。因此,您必须先将其以正确的格式呈现,然后才能突出显示:

函数打印(对象,html){
if(html)返回“”+JSON.stringify(object,null,4)+“”;
else返回JSON.stringify(object,null,4);
}  
var m={“id”:“TESTWIDGET1”,“value”:351,“timestamp”:“2016-08-31T12:03:24.3403952-05:00”};
var hlt=hljs.highlight('json',print_r(m));
$('#codehere').html(hlt.value);
请注意,我将var
m
从字符串更改为对象(只需删除sourrunding


工作小提琴:

跨度
默认为内联元素。如果您想要换行符,您需要通过添加
或使用块级元素来添加它们。您可以创建stacksnippets或JSFIDLE来演示吗?highlight.js可能不负责添加换行符(只是语法高亮显示),并且pubnub不会返回带有换行符的json。您可能需要自己解析它并添加换行符。@Andrew想得不错,但API中的引用使我相信情况并非如此:是的,但它只会在制表符位于原始json字符串中时替换制表符。几分钟后看看我的答案moments@Scott你能创建一个stacksnippet或JSFIDLE来演示吗?注意,在
highlight.js
文档的演示中,
元素作为第一个子元素具有
元素,我对其进行了简化,并将其替换为
var hlt=…
var hlt=hljs.highlight('json',json.stringify($.parseJSON(m),null,4))在我的代码中似乎工作得很好。很高兴听到。当您经常使用它时,应该为它创建一个函数;-)
{
    "id":"TESTWIDGET1",
    "value":371,
    "timestamp":"2016-08-31T11:39:57.8733485-05:00"
}
var m = '{"id":"TESTWIDGET1","value":351,"timestamp":"2016-08-31T12:03:24.3403952-05:00"}';
// hljs.configure({useBR: true});
var hlt = hljs.highlight('json',m);
$('#codehere').html(hlt.value)
$('#codehere span').each(function(i) {
if (i % 2 === 0)
  $(this).before("\n&nbsp;&nbsp;");
if (i === $('#codehere span').length -1)
  $(this).after("\n")
});
function print_r(object,html){
    if(html) return '<pre>' +  JSON.stringify(object, null, 4) + '</pre>';
    else return JSON.stringify(object, null, 4);
}  

var m = {"id":"TESTWIDGET1","value":351,"timestamp":"2016-08-31T12:03:24.3403952-05:00"};
var hlt = hljs.highlight('json',print_r(m));
$('#codehere').html(hlt.value);