Изменение параметров функции Javascript с помощью GreaseMonkey - PullRequest
1 голос
/ 18 июня 2010

Здесь много вопросов о Greasemonkey, но я не вижу ничего, что напрямую связано с моим вопросом.

Я на веб-сайте, который использует элемент управления текстового редактора, и это действительно раздражает, что они не позволяют горизонтальное изменение размера (только вертикальное). Поэтому, если вы используете дешевый проектор, который поддерживает только 1024x768, текст исчезает с экрана, и вы ничего не можете с этим поделать.

Я посмотрел на исходный код страницы и нашел раздел кода, который я хочу, чтобы Greasemonkey изменил:

<script type="text/javascript">
// TinyMCE instance type: CD_TinyMCE
tinyMCE.init({
    convert_urls : "",
    mode : "specific_textareas",
    editor_selector : "rte",
    theme : "advanced",
    theme_advanced_toolbar_location : "top",
    theme_advanced_toolbar_align : "left",
    theme_advanced_statusbar_location : "bottom",
    theme_advanced_resizing : true,
    **theme_advanced_resize_horizontal : false**,
...

Я просто хочу изменить выделенное жирным шрифтом значение true. Я попытался подойти к этому методу грубой силы и заменить текст следующим образом:

function allowHorizontalResize() {
  var search_string = "theme_advanced_resize_horizontal : false";
  var replace_string = "theme_advanced_resize_horizontal : true";
  var doc_text = document.body.innerHTML;
  document.body.innerHTML = doc_text.replace( search_string, replace_string);
}

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

Может кто-нибудь объяснить, что я делаю не так? Это вообще возможно?

Ответы [ 2 ]

2 голосов
/ 18 июня 2010

Попробуйте сначала простой прямой подход. Ваш скрипт Greasemonkey может быть таким простым:

GM_addStyle ("#content_tbl {width: 900px !important;}");

- работает с окном TinyMCE по умолчанию.

Изменение исходного кода javascript, вероятно, не будет легко работать. Но дьявол кроется в деталях.

Предоставьте ссылку на страницу или pastebin полный код.

1 голос
/ 18 июня 2010

Нет, скрипт будет уже выполнен, когда вы примените функцию. Вам нужно будет получить элемент текстового редактора и применить свойства вручную (при условии, что это элемент).

Ссылка сделает меня более полезным.

...