2013-12-09 3 views
0

Я пытаюсь создать расширение chrome, которое будет щелкать ссылку, когда страница определенного сайта загружается/обновляется. До сих пор мне не удалось заставить его работать, я пробовал разные фрагменты кода из разных источников, но независимо от того, что я пробовал, он все равно ничего не делает.Расширение Chrome для загрузки на страницу

Моего манифест выглядит так -

{ 
    "name": "SITENAME", 
    "manifest_version": 2, 
    "version": "1", 
    "content_scripts": [ 
    { 
     "matches": ["*://SITENAME.com/*"], 
     "js": ["sitenamelink.js"] 
    } 
    ], "permissions": [ 
    "tabs" , "*://SITENAME.com/*" 
    ] 
} 

Сайт будет иметь случайную динамические переменные, добавляемые к концу этого, такие как «sitename.com/product/model...etc и др.» так что у них действительно нет способа быть предсказуемым, единственный способ найти URL-адрес страницы и обновлять расширение каждый раз, когда это не то, что я хочу делать.

Я пытался держать JS кодирования чистой и простой и JS У меня есть сейчас -

$(document).ready(function(){ 
$('#addToCartLink').trigger('click'); 
}); 

Я также попытался это -

jQuery.noConflict(); 
jQuery(document).ready(function() { 
    jQuery('a#addToCartLink')[0].click(); 
}); 

и это -

$(document).ready(function(){ 
$('a#addToCartLink')[0].click(); 
}); 

Страница, на которой есть ссылка, закодирована как таковая - <a id="addToCartLink" href="javascript:addToCart()" onclick="showBubble(this)" onmouseout="hideBubble()"><span>Add to Cart</span></a>

Я не уверен, как проверить его, чтобы увидеть, где мой код не работает, потому что, когда я проверяю с помощью chrome, он показывает только js-ошибки из кодировки этой страницы.

Так что я делаю неправильно? Буду признателен за любую оказанную помощь. Благодарю.

Тэги: тестовая страница, размер которой выбирается, если вы перейдете по этой ссылке, и теперь требуется только нажать ссылку для добавления в корзину. - Страница испытаний

+0

вызова .click() на самом йот узле. 'document.getElementById ('addToCartLink'). щелкните()' –

+0

или еще лучше, пропустите клик полностью. 'showBubble (document.getElementById ('addToCartLink'));' –

+0

@KevinB, но если я пропущу щелчок, просто создайте пузырь вместо добавления элемента в корзину? – Rich

ответ

1

Мое расширение образца (см. Код ниже) отлично работает для меня.
E.g .: При посещении Test Page вы предоставили ссылку ADD TO CART и щелкнули по элементу в корзину.

manifest.json:

{ 
    "manifest_version": 2, 

    "name": "Test Extension", 
    "version": "0.0", 
    "offline_enabled": false, 

    "content_scripts": [{ 
     "matches": ["*://*.sitename.com/*"], 
     "js":   ["content.js"], 
     "run_at":  "document_end", 
     "all_frames": false 
    }] 
} 

content.js:

document.getElementById('addToCartLink').click(); 
+0

вы сударь являются Богом. лол спасибо. – Rich

+0

У меня есть другой вопрос, может быть, вы можете ответить. Мне было интересно, можно ли выбрать вариант из меню выбора, а затем повторить вышеупомянутый ответ? Что-то вроде этого 'document.getElementById ("# product_sizes"). Детей ("вариант [значение = '12 0,0' ]"). Проп ('выбран', правда)' – Rich

+0

Почти все возможно. Ваше воображение предел :) Хау зависит от того, что именно вы хотите, и то, что DOM выглядит, так что если вы не можете найти что-то соответствующее здесь в SO, задать вопрос со всей необходимой информацией. – gkalpak

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