2017-04-09 108 views
0

我在編輯使用JavaScript的Wordpress插件。我想在說明字段中使用HTML,但目前JavaScript正在輸出文本,而不是將其翻譯爲HTML。在Javascript中添加html

例如,當介紹

Test <p>html</p>

它與<p>打印它,而不是呈現一個新的段落。

function appendPersonality(quiz, personality, hasTitle, hasImage, hasDescription) { 
    var $personality, $title, $description, $image; 

    $title = createIf(hasTitle, '<h2>', { 'html': personality.name }); 

    if (personality.image.file) { 
    $image = createIf(hasImage, '<img>', { 
     'class': classes('result-image'), 
     'src': _getPath(personality.image.file.path), 
     'alt': personality.image.alt 
    }); 
    } 

    $description = createIf(hasDescription, '<p>', { 
    'html': personality.description 
    }); 

    // NOTE (Emil): We only create $personality element if it has at least 
    // one child element. 
    if (hasTitle || hasImage || hasDescription) { 
    $personality = $('<div>', { 'class': classes('personality') }); 

    $personality.append($title); 
    $personality.append($image); 
    $personality.append($description); 
    } 

    quiz.$resultWrapper.append($personality); 

    setInlineImageHeight($image, $personality, quiz.$resultWrapper); 

    return $personality; 
} 

爲什麼'html': personality.description不呈現html?

+0

需要在哪裏'$ description'更多的細節被使用之後 – xhg

+0

難道要猜測對象的結構反轉義呢? –

+0

@aahung我添加了該功能的其餘部分。我試圖編輯的完整代碼是https://github.com/LumeniaAS/h5p-personality-quiz – jonbon

回答

0

我拿你貼的代碼,應該沒事的。但我的建議是檢查personality.description的值,它可能會在某些時候逃脫。您可以使用

(功能unescapeHTMLArun P Johny's answer拍攝)

function unescapeHtml(safe) { 
    return safe.replace(/&amp;/g, '&') 
     .replace(/&lt;/g, '<') 
     .replace(/&gt;/g, '>') 
     .replace(/&quot;/g, '"') 
     .replace(/&#039;/g, "'"); 
} 

... 

$description = createIf(hasDescription, '<p>', { 
    'html': unescapeHtml(personality.description) 
}); 
+0

它可能會在某些時候被轉義?就像,隨意excaped?我沒有看到github上的任何地方https://github.com/LumeniaAS/h5p-personality-quiz它在哪裏逃脫 – jonbon

+0

@jonbon除非你可以提供完整的網站/網頁或現場演示,據我所知該存儲庫只包含幾個文件。你在哪裏指定了「測試

html

」的值,並且你可以檢查'params.resultScreen.displayDescription'仍然是'Test

html

'? – xhg

+0

測試值通過插件接口 – jonbon