javascript - 删除正文中的元素 <script>

标签 javascript html

我有一个像这样的脚本转换器

    var currency_data='USD,0.712497,0.01|AUD,0.5576,0.05|AED,0.194009,0.25|BRL,0.248647,0.01|JPY,0.00594888,1|GBP,1.09482,0.01|CAD,0.572195,0.01|CNY,0.115772,0.5|EUR,0.795717,0.01|INR,0.0115219,0.1|ILS,0.178705,0.01|QAR,0.195741,1|RUB,0.0114246,0.01|SAR,0.189999,1|SGD,0.522129,0.01|THB,0.0220219,0.25';
var currency_sdrPer=new Array(),currency_Unit=new Array();currency_make_arrays();function currency_make_arrays(){var d=currency_data.split("|");for(var e=0;e<d.length;e++){var b=d[e].split(","),f=b[0];currency_sdrPer[f]=b[1];currency_Unit[f]=b[2]}};
function currency_rnd(h,e){h=Math.round(h/e)*e+".";var g=(e+".").split("."),c=h.split("."),b=c[1],a=g[1].length,d=b.length;if(d>a){b=b.substring(0,a)}for(var f=0;f<a-d;f++){b+="0"}return c[0]+(a==0?"":"."+b)}function currency_convert(f,d,c){var e=currency_sdrPer;if(!e[d]||!e[c]){return""}return currency_format(f*(e[d]/e[c]),currency_Unit[c])}function currency_format(c,f){var g=typeof currency_thousandsSeparator=="string"?currency_thousandsSeparator:",",b=typeof currency_decimalSeparator=="string"?currency_decimalSeparator:".",f=(typeof currency_decimalDigits=="number")?(1/Math.pow(10,currency_decimalDigits)):(typeof f=="number"?f:0.01),j=typeof currency_thousandsSeparatorMin=="number"?currency_thousandsSeparatorMin:3;if(typeof currency_round=="boolean"&&currency_round){c=currency_rnd(c,f)}var i=(""+c).split("."),h=i[0],e=i.length>1?b+i[1]:"",a=/(\d+)(\d{3})/;if(g!=""){while(a.test(h)&&h.length>j){h=h.replace(a,"$1"+g+"$2")}}return h+e};
function conversion(e,d,c){document.write(currency_convert(e,d,c))}function currency_getRateHTML(d,c){var g=currency_convert(1,d,c);if(g==""){return""}var f=d+"_"+c+".html";if(c<d){f=c+"_"+d+".html"}f="http://coinmill.com/"+f;var e=unescape("%3Ca+href%3D%22%24link%22%3E%24from_the_name+is+worth+%3Cb%3E%24rate%3C/b%3E+%24to_plural_name%3C/a%3E%3Cbr%3E");if(typeof currency_template!="undefined"){e=currency_template}return e.replace("$link",f).replace("$rate",g).replace("$from_abbrev",d).replace("$from_name",d).replace("$from_plural_name",d+"s").replace("$from_the_name","the "+d).replace("$to_abbrev",c).replace("$to_name",c).replace("$to_plural_name",c+"s").replace("$to_the_name","the "+c)}function currency_showRate(d,c){document.write(currency_getRateHTML(d,c))}function currency_showRates(){for(var e=0;e<currency_rate_list.length;e++){var d=currency_rate_list[e];e++;if(e<currency_rate_list.length){var c=currency_rate_list[e];currency_showRate(d,c)}}}if(typeof currency_rate_list!="undefined"){currency_showRates()};

元素之后<head>

<script>
    var currency_round=true;
</script>

以及<body>之后的内部调用:

<div>USD 60.61 = GBP <script>conversion(60.61,"USD","GBP");</script></div>

但是,我真的很介意有<script></script> body 内的元素,因为它不利于 html 验证。

有什么方法可以将其更改为或元素吗?

最佳答案

如果你真的想把它移出 body (而且这样做似乎没有任何意义,那里有一个脚本并不是无效的)那么你需要:

  1. 在正文中创建一个元素以放入内容
  2. 将所有 document.write 语句替换为 DOM 方法
  3. 在元素可用后调用 conversion 函数(例如使用 load 事件处理程序)

关于javascript - 删除正文中的元素 &lt;script&gt;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28853741/

相关文章:

javascript - Lifecycle React组件,具有即时加载组件

javascript - heroku node.js 教程 - 将环境变量发送到其他 js 页面

javascript - 可观察:http 获取错误后未调用 onCompletion

javascript - 谁能帮我向 d3 力图添加文本?

javascript - 有没有办法将 ng-model 绑定(bind)到指令内唯一的多个输入字段?

c# - 我的代码出现错误 : Cannot find table 0. 我做错了什么?

html - 在网页中循环后台MIDI文件

javascript - 粗略的 Unicode -> 没有 CLDR 的语言代码?

用于构建 API 的 JavaScript 文件

javascript - 在 HTML 链接中使用 onClick 传递多个值