使用内容脚本获取本地PDF的网址

时间:2019-01-02 03:40:43

标签: javascript pdf google-chrome-extension content-script

访问Google Chrome浏览器的pdf时,浏览器使用其自己的扩展名来阅读和显示PDF。我想使用内容脚本从本地源文件“ file:/// C:/Users/Test/Desktop/test%20extension/test.pdf”中获取URL。

我的目标是最终获取此PDF的文本,以便我可以阅读它,而我正在使用的pdf.js库要求pdf的URL。

在chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/index.html文件中,以下元素保存此数据。

<embed id="plugin" type="application/x-google-chrome-pdf" src="file:///C:/Users/Test/Desktop/test%20extension/test.pdf" stream-url="blob:chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/e268f61a-7f6c-44ab-9218-7193dc73a783" headers="" background-color="0xFF525659" top-toolbar-height="56" javascript="allow" full-frame="">

我已将清单脚本嵌入到manifest.json中,如下所示:

    "content_scripts": [
    {
        "matches": ["*://*/*.pdf"],
        "js": ["contentScript.js"]
    }
    ],

我的内容脚本具有以下代码,我相信应该提取此URL:

var fileUrl = document.getElementById('plugin').src;
console.log('The file URL is : ' + fileUrl);

我的目标是获取上面的console.log()以返回fileUrl(“ file:/// C:/Users/Test/Desktop/test%20extension/test.pdf”)。有人对此有建议吗?我可能无法正确调用内容脚本吗?

1 个答案:

答案 0 :(得分:0)

按照@wOxxOm的建议,从

更改“匹配”模式
"matches": "*://*/*.pdf"

"matches": "file://*/*.pdf"

成功了!