2

我想制作一个 Chrome 扩展程序,它将像这样获取源代码:

document.getElementsByTagName('html')[0].innerHTML

这可能不是最好的方法......然后更改搜索并替换源中的文本......就像页面中出现“酷”这个词,然后用其他东西替换它并向用户显示修改后的页面. 我该怎么做?

此外,不仅仅是文本,我需要编辑源代码,而不仅仅是显示的文本。

我的目标是编辑页面源链接,例如样式表和其他源。我需要更改https://- 如果是一个 - 并将其替换为http://.

4

2 回答 2

0

尝试http://api.jquery.com/clone/var element = $0;(返回根元素)

例如:获取标签名称描述的代码:

var getElementReference = function() {

    var element = $0;
    var tagName = element.tagName;
    var dictionary = {
        a: "Defines an anchor",
        abbr: "Defines an abbreviation",
        acronym: "Defines an acronym",
        address: "Defines contact information for the authorowner of a document",
        applet: "Deprecated. Defines an embedded applet",
        area: " Defines an area inside an image-map",
        b: "Defines bold text",
        base: " Defines a default address or a default target for all links on a page",
        basefont: " Deprecated. Defines a default font, color, or size for the text in a page",
        bdo: "Defines the text direction",
        big: "Defines big text",
        blockquote: "Defines a long quotation",
        body: "Defines the document's body",
        br: " Defines a single line break",
        button: "Defines a push button",
        caption: "Defines a table caption",
        center: "Deprecated. Defines centered text",
        cite: "Defines a citation",
        code: "Defines computer code text",
        col: " Defines attribute values for one or more columns in a table ",
        colgroup: "Defines a group of columns in a table for formatting",
        dd: "Defines a description of a term in a definition list",
        del: "Defines deleted text",
        dfn: "Defines a definition term",
        dir: "Deprecated. Defines a directory list",
        div: "Defines a section in a document",
        dl: "Defines a definition list",
        dt: "Defines a term (an item) in a definition list",
        em: "Defines emphasized text ",
        fieldset: "Defines a border around elements in a form",
        font: "Deprecated. Defines font, color, and size for text",
        form: "Defines an HTML form for user input",
        frame: "  Defines a window (a frame) in a frameset",
        frameset: "Defines a set of frames",
        h1: " Defines HTML headings",
        h2: " Defines HTML headings",
        h3: " Defines HTML headings",
        h4: " Defines HTML headings",
        h5: " Defines HTML headings",
        h6: " Defines HTML headings",
        head: "Defines information about the document",
        hr: "  Defines a horizontal line",
        html: "Defines an HTML document",
        i: "Defines italic text",
        iframe: "Defines an inline frame",
        img: " Defines an image",
        input: " Defines an input control",
        ins: "Defines inserted text",
        isindex: "Deprecated. Defines a searchable index related to a document",
        kbd: "Defines keyboard text",
        label: "Defines a label for an input element",
        legend: "Defines a caption for a fieldset element",
        li: "Defines a list item",
        link: " Defines the relationship between a document and an external resource",
        map: "Defines an image-map ",
        menu: "Deprecated. Defines a menu list",
        meta: " Defines metadata about an HTML document",
        noframes: "Defines an alternate content for users that do not support frames",
        noscript: "Defines an alternate content for users that do not support client-side scripts",
        object: "Defines an embedded object",
        ol: "Defines an ordered list",
        optgroup: "Defines a group of related options in a select list",
        option: "Defines an option in a select list",
        p: "Defines a paragraph",
        param: " Defines a parameter for an object",
        pre: "Defines preformatted text",
        q: "Defines a short quotation",
        s: "Deprecated. Defines strikethrough text",
        samp: "Defines sample computer code",
        script: "Defines a client-side script",
        select: "Defines a select list (drop-down list)",
        small: "Defines small text",
        span: "Defines a section in a document",
        strike: "Deprecated. Defines strikethrough text",
        strong: "Defines strong text",
        style: "Defines style information for a document",
        sub: "Defines subscripted text",
        sup: "Defines superscripted text",
        table: "Defines a table",
        tbody: "Groups the body content in a table",
        td: "Defines a cell in a table",
        textarea: "Defines a multi-line text input control",
        tfoot: "Groups the footer content in a table",
        th: "Defines a header cell in a table",
        thead: "Groups the header content in a table",
        title: "Defines the title of a document",
        tr: "Defines a row in a table",
        tt: "Defines teletype text",
        u: "Deprecated. Defines underlined text",
        ul: "Defines an unordered list",
        xmp: "Deprecated. Defines preformatted text"
    };

    var result = {
        tag: tagName,
        description: dictionary[tagName.toLowerCase()],
        __proto__: null
    };

    return result;
}
于 2012-11-15T11:02:49.023 回答
0

The best way is:

  1. Add jquery to your options.html
  2. Than use jquery to solve your problems like

    $('#searchfield').val('TEST'); // and so on...

Hopefully it helps.

PS.: I wrote an chrome-extension as well maybe it could help you to start (https://github.com/marcofrancke/AmazonExtended)

于 2012-11-14T15:46:23.107 回答