TOGOUTECH

javascript - 我应该完全停止使用内联 JavaScript 吗?

coder 2024-05-16 原文

在其他地方关于 SO 的讨论中,我被告知“[m]ost 浏览器将不会执行内联 javascript……这些天。”这对我来说是个新闻,我一直在研究以验证这一说法,以便了解我是否需要调整我维护的某些网站上的代码以使其与 future 的浏览器兼容。

据我所知,评论者指的是 Content Security Policy ,一个相对较新的提案,如果实现,它将限制或完全禁用内联脚本。

但是,我注意到:

我的问题基本上是,#3 我错了吗?内联 JavaScript 支持可能会被淘汰吗?


顺便说一下,我在 SO 上提出这个问题,因为我认为这可能是“软件开发独有的实际的、可回答的问题”。如果其他人认为这太宽泛或属于 SE 的其他地方,我想听听您的建议。提前致谢!

最佳答案

如果默认情况下禁用内联 javascript,则有数以亿计的网页将停止工作。这样做的浏览器必须非常勇敢。

浏览器的向后兼容性是好事也是坏事(想想 IE!)。这是一件坏事,因为如果它们不必支持遗留代码,它们可以更轻便、更快,也是一件好事,因为否则,数以亿计不再有人维护的有用网页将几乎丢失。

认为没有浏览器,即使使用 HTML5,也会对 HTML 执行严格的规则,所以我怀疑内联 javascript 会被禁用。即使引入了一种方法,作为开发人员,您也可以禁用该选项(或者更好的是,不启用它)。

也就是说,我会是第一个在我自己的网站上启用它的人,因为我讨厌内联代码。我的建议:除非绝对必要,否则永远不要使用它。

关于javascript - 我应该完全停止使用内联 JavaScript 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22359108/

有关javascript - 我应该完全停止使用内联 JavaScript 吗?的更多相关文章

  1. javascript - 如何在链接点击上播放 mp3 - 2

    有一个简单的链接01.TheNameofTrack如何在用户点击链接时播放mp3文件?请帮助我找到一些简单有效的解决方案。谢谢。感谢您的帮助。我选择了这个解决方案http://www.schillmania.com/projects/soundmanager2/demo/play-mp3-links/最适合我的情况。 最佳答案 使用HTML5Yourbrowserdoesnotsupporttheaudioelement.document.getElementById("link_id").addEventListener("cli

  2. javascript - 无法在 Express 中呈现 swig 模板 - 2

    所以我正在尝试使用consolidate.js渲染swigtemplates使用express,但是当我尝试从另一个模板“扩展”一个模板时出现以下错误:Error:ENOENT,nosuchfileordirectory'//one.html在我的app.js文件中,我将swig设置为我的渲染引擎(仅包括相关代码):varconsolidate=require('consolidate');app.set('viewengine','html');app.set('views',__dirname+'/views');app.engine('.html',consolidate.swi

  3. Javascript:构造函数中的回调 - 2

    我正在尝试为一个对象编写OOjavascript,该对象具有昂贵的初始化过程,完成后会回调一个函数。问题在于调用者需要在回调例程中使用同一对象的函数,而该对象尚不存在://ctorforfooobjectfunctionfoo(callback){//doslowinitializationhere..//callbackwhendonecallback();};foo.prototype=function(){return{//doStuffmethoddoStuff:function(){alert('stuffdone');}};}();//instantiatethefooob

  4. javascript - 如何将以毫秒为单位的日期转换为 iso 格式的 javascript? - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:HowdoIoutputanISO-8601formattedstringinJavascript?如果我有一个以毫秒为单位表示日期的整数,将其转换为iso格式的语法是什么?

  5. javascript - 在 javascript/DOM 中存储文本内容的最快和/或最干净的方法是什么? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。我通常会看到版本1,但我从事的一些开源项目使用版本2,而我过去也使用过版本3。有没有人有更优雅的解决方案,也许是更具可扩展性的解决方案?版本1:vartext1='thisismyscript\'scontent';版本2:Thisismycontentvartext1=$('#text1').html();版本3:vartext1=$('#text1'

  6. javascript - 优化javascript代码以使用整数运算 - 2

    有一些算法可以“非常好”地解决问题,前提是“非常好”意味着最小化浮点算术运算的数量以支持整数算术。以Bresenham'slinealgorithm为例为了弄清楚要填充哪些像素以便在Canvas上画一条线:这个人几乎只用了一些简单的整数运算就使整个过程变得可行。这种事情在很多情况下显然是好的。但是,在javascript中需要大量float学运算的操作值得担心吗?我知道就语言规范而言,一切都几乎是十进制数。我想知道是否实际上尝试让事情尽可能接近整数是否值得——浏览器是否进行了优化以使其值得? 最佳答案 您可以在javascript中

  7. javascript - 使用 YoutubeAPI 播放 youtube 视频直到特定时间并暂停 - 2

    有没有办法使用YoutubeAPI播放视频直到视频中的某个点然后暂停? 最佳答案 我修改了YouTubePlayerAPIReferenceforiframeEmbeds中的代码在一定秒数后暂停播放。Demo代码通过等待onPlayerStateChange事件来工作。当事件触发时,它会检查事件以查看它是否是PLAYING事件。如果是,它会计算从当前时间(getCurrentTime()方法)到所需暂停点(硬编码为stopPlayAt变量)的剩余时间。它设置一个Javascript计时器来等待该差异,然后向API传递一个命令以暂停视

  8. javascript - Chosen.js - 是否可以限制所选项目的数量? - 2

    我有一个客户想要为用户提供从列表中最多选择5个附加选项的选项。我喜欢Chosen.js的概念,但如何限制选择?我想一种解决方案是使用onChange来计算所选的数字,然后禁用剩余的数字,但是有没有更简洁的解决方案? 最佳答案 Chosen提供了一个max_selected_options来允许你这样做:$(".chzn-select").chosen({max_selected_options:5}); 关于javascript-Chosen.js-是否可以限制所选项目的数量?,我们在S

  9. javascript - 定义 Javascript 对象时出现 IE8 错误? - 2

    我知道IE8很麻烦,但我从未见过它给我带来如此麻烦。我想要做的就是定义一个Javascript对象,它会导致错误,停止在页面上运行所有脚本。错误是“预期的标识符、字符串或数字”,表明问题发生在我在下面定义属性“类”的地方。我见过无数的脚本都是这样定义对象的,那么为什么IE8会吐槽这个呢?我将违规代码隔离到此。将它单独放在HTML页面的头部并在IE8中运行它会导致我看到的问题。varatts={class:"trigger"}; 最佳答案 通过用引号引起来定义使用适当的数据类型,"class"

  10. javascript - 两个相互依赖的字段的 knockout validation - 2

    考虑以下代码-varMyObjectModel=function(myObject){varself=this;self.myNumber1=ko.observable(myObject.number1).trimmed();self.myNumber2=ko.observable(myObject.number2).trimmed();我想扩展myNumber1和myNumber2,以添加knockoutvalidation,以便在两者均为空时抛出错误,并在其中一个有值时保持正常。知道如何实现这一目标吗? 最佳答案 您可以使用ko

随机推荐