@frissdiegurke when using document.write you can avoid replacing the whole site, but it cannot be loaded asynchronously aka injected (as it needs to execute immediately on DOM build), which is most likely the case on most NodeBB pages
@DennisSun if you want to have a dynamic the protocol, or maybe that string at the end, use something like
<script type="text/javascript">
(function() {
var something = '0da233db09b6a0886cd3f9d1a52e64d8'; // or could be dynamically generated, I don't know
// build your script tag
var script = document.createElement('script');
script.type = 'text/javascript'; // that's useless, browsers ignore it, but whateves
script.async = true;
script.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'hm.baidu.com/h.js?' + something;
// google analytics does that, this will find this actually script (unless loaded asynchronously, in that case it would find the last script tag on the page)
// it should work in either case
// var thisScriptTag = document.getElementsByTagName('script')[0];
// thisScriptTag.parentNode.insertBefore(script, s);
// or you can just append it to the head
var head = document.getElementsByTagName('head')[0];
head.appendChild(script);
})();
</script>