Пользовательский скрипт больше не работает в iframe в Chrome 27.

У меня есть расширение для Chrome, состоящее из пользовательского скрипта, упакованного таким образом, чтобы пользователям Chrome не приходилось возиться с Tampermonkey.

Страница, на которой запускается скрипт, состоит из нескольких фреймов, например, если вы переходите на site/game.php, страница состоит из 3 фреймов, например:

  • game.php
    • menu.php
    • msgframe.php
    • main.php

В Firefox и ранее в Chrome я мог добавить «main.php» во включаемые глобусы, и мой скрипт запускался в этом фрейме всякий раз, когда я загружал game.php на верхнем уровне. Однако в последней версии (Chrome 27.0.1453.93 m) я могу запустить скрипт только на верхнем уровне «game.php». Браузер даже не пытается запуститься на любом из фреймов. Я подозреваю, что это часть того же набора улучшений безопасности, который удалил "unsafeWindow " взломать.

Есть ли способ заставить Chrome снова обратить внимание на мой include_globs в манифесте, или мне действительно нужно изменить скрипт, чтобы я тратил время внутри game.php, проверяя все кадры и видя, какой из них мне нужен? бежать дальше?

В game.php не всегда есть одни и те же фреймы, URL-адреса меняются в зависимости от того, куда щелкает пользователь, поэтому мне придется проверять каждый, чтобы узнать, где я был, и я бы предпочел избежать накладных расходов.

Спасибо

Изменить: похоже, это связано с этой ошибкой.


person user1176913    schedule 22.05.2013    source источник


Ответы (1)


Установите для «all_frames» в content_scripts значение true, по-видимому, теперь это значение по умолчанию равно false в манифесте расширения.

{
"manifest_version": 2,
"icons": { "48": "logo48.png", "128": "logo128.png" },
"name": "My Script",
"description": "I do stuff.",
"converted_from_user_script": true,
"version": "1.0",
 "content_scripts": [ {
    "all_frames" : true,
    "exclude_globs": [  ],
    "exclude_matches": [  ],
    "include_globs": [ "http*://*.example.com/main.php*" ],
    "js": [ "my_script_name.user.js" ],
    "matches": [ "http://*.example.com/*", "https://*.example.com/*" ],
    "run_at": "document_end"
 } ]
}
person user1176913    schedule 23.05.2013