javascript - 将 HTML/CSS 注入(inject)网页的更好方法?

标签 javascript html css google-chrome-extension

我有一个 Chrome 扩展程序,它通过内容脚本将 HTML/CSS 注入(inject) Google 搜索页面。

目前,我正在使用 insertAdjacentHTML() 和一长串 HTML 来执行此操作。

相关代码片段:

const chosenElements = document.getElementsByClassName('r');

for (var i = 0; i < chosenElements.length; i++) {
    chosenElements[i].insertAdjacentHTML('afterbegin', createHTML(name));
}

function createHTML(name) {
  return (
    '<a style="display: flex; justify-content: center; .... font-weight: 500;" href="https://www.mywebsite.com/">Click here to go to ' +
    name +
    ' website</a>'
  );

这是正确的做法,将 HTML/CSS 添加到页面,但对我来说这是一种非常不切实际的方法,因为我想大大扩展注入(inject)内容的 HTML 和 CSS,并在像这样的一大行是行不通的。

有没有更好的注入(inject)方法?

考虑链接到具有自己的 CSS 文件样式或类似内容的单独 HTML 文件。

谢谢。

最佳答案

查看 template strings .它们得到全面的支持 ( Can I use ),并且 100% 在 Chrome 中得到支持。

这使用反引号字符而不是引号或单引号来创建字符串,以及简单的插值。

function createHTML(name) {
  return (
    '<a style="display: flex; justify-content: center; .... font-weight: 500;" href="https://www.mywebsite.com/">Click here to go to ' +
    name +
    ' website</a>'
);

成为

function createHTML(name) {
  return (
    `<a style="display: flex; justify-content: center; font-weight: 500;"
        href="https://www.mywebsite.com/">
       Click here to go to ${name} website
     </a>` 
);

您仍然会将所有代码放在一个文件中,但它会更容易理解。希望对您有所帮助!

关于javascript - 将 HTML/CSS 注入(inject)网页的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55829071/

相关文章:

php - 将 JSON 数组从 PHP 传递到 Dynatree

javascript - 将字符串转换为键不带引号的 python 或 json 字典

html - CSS 固定标题 - 放大时无法访问选项卡

html - Prestashop 为特定类别创建自定义布局

javascript - 如何在 react.js 中将 JSON 对象附加到 JS 文件中的现有 JSON 对象

javascript - 将数组中的项目添加到另一个数组中的对象中

html - 如何居中让四张图片彼此居中(Bootstrap)

html - HTML 页面是否需要格式正确?

html - 为什么 font-style 不能用于删除 'italic' 样式?

javascript - 我们可以在 AngularJs 中嵌套 div ng-view 吗?