2016-11-09 3 views
0

Когда я использую онлайновые ссылки, он работает, но когда я указываю локальный путь, он не загружается.Я пытаюсь добавить изображение в файл js внутри элемента innerHTML для расширения Chrome

Рабочая:

<img src="https://test-img-url">

Не работает:

<img src="image/smile.jpg">

Файлы:
--Chrome | |-----manifeset.json |-----core | |--- CfCore.js |--- images | |---smile.jpg

Так что я в CfCore.js, где я использую внутреннийHTML:
e.innerHTML='<a href=#> <img src="images/smile.jpg" id="smile"> </a>'

Кроме того, в файле манифеста я попробовал:
"web_accessible_resources":["images/smile.jpg"]

Я нашел людей, предполагая, используя хром: // расширения, web_accessible_resources в файле манифеста, и я не считаю, это полезно как бы я код в мой js-файл.

ответ

2

"web_accessible_resources" в manifest.json требуется, да.

Затем используйте chrome.runtime.getURL в коде:

e.innerHTML = '<a href=#><img src="' + 
    chrome.runtime.getURL('images/smile.jpg') + '" id="smile"></a>'); 

Или использовать простой regexp replace для вставки chrome.runtime.getURL в относительных ссылок Src автоматически:

e.innerHTML = expandLocalSrc('<a href=#><img src="images/smile.jpg" id="smile"></a>'); 

function expandLocalSrc(html) { 
    return html.replace(/src="([^:"]+)"/g, 'src="' + chrome.runtime.getURL('') + '$1"'); 
} 

P.S. Ссылки относительно manifest.json поэтому согласно вашему вопросу это core/images/smile.jpg или просто переезд images директория из core.

+0

Благодарим вас за помощь в жизни. –

+0

Итак, я пришел к другой проблеме. Как мне заставить работать с другими браузерами, такими как firefox, safari. Поскольку вышеупомянутый код работает только с хромом. –

 Смежные вопросы

  • Нет связанных вопросов^_^