Чтобы ответить прямо здесь:
var newElem = document.createElement( 'script'); //create a script tag
newElem.type = 'text/javascript'; // add type attribute
newElem.innerHTML = 'function myFunc() { alert( "alerting"); } myFunc();'; // add content i.e. function definition and a call
document.body.appendChild( newElem); // Insert it as the last child of body
Это формальный способ, но самый короткий может быть
document.body.appendChild( document.createElement( 'script'));
document.body.lastChild.innerHTML = 'function myFunc() { alert( "the alert"); } myFunc();'; // add content i.e. function definition and a make a call
Но описание вашего вопроса сбивает с толку, вы хотите вставить функцию на страницу, а затем вызвать ее с помощью GM? Зачем вставлять его на страницу тогда? Обратите внимание, что в приведенном выше коде вызов находится внутри области страницы, а не из GM, в этом случае вы не можете позвонить из GM, ну ... вам придется использовать небезопасный, но, как обычно, не рекомендуется, чтобы позвонить вам придется вставлять узлы на странице что-то вроде:
someplace.innerHTML = '<a onclick=myFunc()>Execute myFunc</a>';
Эта функция, которую вы хотите вставить, должна ли она находиться в области видимости страницы? Вы не сможете вызвать его из области видимости GM, если не просто оставить функцию в области видимости GM и вызвать ее без вставки.