bbcode:
代码: 全选
[svg={UINT?}]代码: 全选
<img style="max-width: 100%; box-sizing: border-box; width: auto; height: auto;" width="36" height="36"
src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiI+PGNpcmNsZSBjeD0iMTgiIGN5PSIxOCIgcj0iMTIiIGZpbGw9Im5vbmUiIHN0cm9rZT0iYmx1ZSIgc3Ryb2tlLXdpZHRoPSIyIi8+PC9zdmc+"
onload="
(function(img){
// 1. Find the first previous 'div.codebox'
var codebox = img.previousElementSibling;
while(codebox && !codebox.classList.contains('codebox')){
codebox = codebox.previousElementSibling;
}
if(!codebox) return;
// 2. Get <code> innerHTML
var codeElem = codebox.querySelector('code');
if(!codeElem) return;
var codeHTML = codeElem.innerHTML.trim();
// 3. Check if it ends with </svg>
if(!codeHTML.endsWith('&' + 'lt;/svg&' + 'gt;')){
img.remove();
return;
}
// 4. Replace < and > with < and >
var reLt = new RegExp('&' + 'lt;', 'g');
var reGt = new RegExp('&' + 'gt;', 'g');
var svgText = codeHTML.replace(reLt,'<').replace(reGt,'>');
// 5. Parse SVG
var parser = new DOMParser();
var doc = parser.parseFromString(svgText,'image/svg+xml');
var svg = doc.documentElement;
if(svg.hasAttribute('width') && svg.hasAttribute('height')){
img.width = parseFloat(svg.getAttribute('width'));
img.height = parseFloat(svg.getAttribute('height'));
}
// 6. Convert SVG to base64 and assign to img.src
var serializer = new XMLSerializer();
var svgStr = serializer.serializeToString(svg);
var b64 = btoa(unescape(encodeURIComponent(svgStr)));
img.onload = null;
img.src = 'data:image/svg+xml;base64,' + b64;
// 7. Display the svg code or not
if ('{UINT}' !== '1') {
codebox.style.display = 'none';
}
})(this);
">代码: 全选
Place this bbcode after a [ code]<svg>...</svg>[ /code] to display svg image.如果是[ svg],則其上方的[ code]會隱藏。
如果是[ svg=1],則其上方的[ code]會顯示。

