ITねっぱーいる?お話聞いて

最新10レス
1以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 16:53:12.36 ID:c2FmAeOs

jsとhtmlの話です
ボタンを押した時の動きがおかしいサイトがあるからuserScriptで調整しようとしてるんだが
onClick後の動きが単純にsubmitとかじゃなくて
onclick = "return function名('ああああ');"
みたいになっててマジきしょい
こんなjsの文章あるの…?何が起きてるの…?
ググって一応こういうコードは出てくるけど動きについて何も語られてないから何が起きてるのか分からなくて困ってる

今後、やりたいこととしては
function名(value){
if(value=='ああああ'){
var nep = true;
}
みたいにしたい

でも、すでに「function名」って関数はあるから
UserScriptのほうに、元の内容も含めた「function名」の関数を作ろうとしてる
(確か関数の上書きってできるんだよね)

2以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 16:57:48.82 ID:c2FmAeOs

UserScriptの中に
その関数を書いて
if(value=='ああああ'){
var nep = true;
}
はできなかったから、普通に
alert(value)ってしたけど、これもうまく行かず・・・

何が起きてるのかわかんないからボタン押した時のネットワークの動きを確認してみたら
コード302でリダイレクトされてるっぽいんだよね
唯一POSTを確認できたのが、これなんだけど
FORM DATAの中に
onclick = "return function名('ああああ');"の値である
ああああ
を見つけた
これを取得することは可能なの?
(POSTしたデータの特定の値を取得して、追加のプログラムを走らせたい)

3以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 17:09:19.48 ID:xh4zVugE

ぼくhtmlもjsもわからないけど
元のfunction名の中はどんな処理してるの?

4以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 17:20:20.08 ID:c2FmAeOs

お話聞いてくれて嬉しい、いつもありがとう
マジでクソコードだよ

エラーチェックして
他の関数にまた同じ引数を渡して、関数呼び出しをしていた
あとは最後にreturn falseしてるだけだね(エラーチェックでもreturn falseしてるから、ここで強制停止させたいみたい?)

onclick→引数だけ渡して、他の関数でエラーチェックしている('ああああ'自体は一切ここで触れていない)→別の関数呼び出しって感じ

コードでいうなら
onclick = "return function名('ああああ');"
から飛んで

function名(value){
if(hogeFunc() ==true){
return false;
}
if(unchi.value == ''){
alert('ウンチ');
return false;
}
FuckMe(value);
return false;
}
って感じ

5以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 17:25:10.96 ID:xh4zVugE

元のfunctionの中身書き加えてああああだったらtrueを返すようにできないの?

6以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 17:25:27.72 ID:c2FmAeOs

function FuckMe(value){
document.nep.chinchin.value = value;
document.nep.submit();
return false;
}
って感じかな

まあ、submitの方は特に関係なく、初めに"ああああ"が取得される部分で
ああああ が入っていたらtrue、それ以外はfalseって情報を保存したいだけなんだけどね
>>1のifのやつです

7以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 17:27:26.10 ID:c2FmAeOs

>>5
どうなんだろう
自分が下手なのか、userscriptじゃできないのか
今のところうまくいってない・・・
このjsはbodyタグ内部に書かれてるわけじゃなくて、headタグでもなく独立してscriptタグで書かれてた
そこについて、userscriptで書き換えができるのかどうかが微妙で・・・

8以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 17:29:55.07 ID:c2FmAeOs

スクリプトの書き方だけど

// ==UserScript==
// @name google
// @namespace test
// @version 1
// @include https://www.google.co.jp/
// @grant none
// ==/UserScript==
window.onload = function(){
console.log("UserScript test");
alert("UserScriptが有効です。")
}
みたいな感じで、追加するものだと認識してるから


function名(value){
if(hogeFunc() ==true){
return false;
}
if(unchi.value == ''){
alert('ウンチ');
return false;
}
FuckMe(value);
return false;
}



function名(value){

if(value=='ああああ'){
var nep = true;
}

if(hogeFunc() ==true){
return false;
}
if(unchi.value == ''){
alert('ウンチ');
return false;
}
FuckMe(value);
return false;
}

これでいけると思ったんだけど、動かなかった(よく分からないからalert(value)にした)

9以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 17:38:34.15 ID:xh4zVugE

>>8
ぼくhtmlもjsもわからないから手を入れられる部分と入れられない部分の判断ができないんだごめんね
下のように書き換えてもnepはtrueにならないの?

10以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 17:39:35.45 ID:xh4zVugE

そもそも書き換えた方のfunctionが動いてないのか

11以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 17:45:17.10 ID:c2FmAeOs

動いてないと思う
Window.onloadに書いてる関数だけしか動かないんだよね

12以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 17:59:45.76 ID:dzxoPw9j

サイト晒せるならその方が話が早いよ

13以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 18:06:35.89 ID:xh4zVugE

ぼくuserscriptについて何も知らないんだった
これはやってみないとわからないやつだ

14以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 18:10:36.73 ID:c2FmAeOs

半分自決してきた
とにかく今はuserscriptによって関数の上書きができればいいって感じだね

要件は以下の2つだから
・読み込み時点で関数が上書きされること
・cookieにtrueかfalseの情報が保存されること

サイトは晒せない。。ご不便おかけします

15以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 19:18:53.57 ID:+S2B9ahE

https://wiki.greasespot.net/Greasemonkey_Manual:Environment
> When Greasemonkey executes a user script it does so in a special sandbox environment

Userscript はサンドボックスで実行されるからその中で関数を定義しても意味ない
というわけで unsafeWindow を使えとさ
https://wiki.greasespot.net/UnsafeWindow

unsafeWindow.function名 = ()=>{ return "うんこうんこ"; }

セキュリティホールを開ける悪い所業だそうだがどうせお前も悪いことするんだからいいだろう

16以下、名無しにかわりましてVIPがお送りします:2021/01/07(木) 19:23:08.79 ID:c2FmAeOs

https://efcl.info/2009/1122/res1483/
http://programamemo2.blogspot.com/2007/07/javascript-greasemonkey.html?m=0

それっぽい情報あったから参考にしようとしてたけど全て古かった。。

unsafeWindowっていうのがあるのか
参考になります

17以下、名無しにかわりましてVIPがお送りします:2021/01/08(金) 23:18:24.87 ID:9oNT+4Uc

オススメのWi-Fiルーターとかない?

18以下、名無しにかわりましてVIPがお送りします:2021/01/08(金) 23:25:16.73 ID:9oNT+4Uc

質問クソだったねごめん
部屋は1DK
家はGoogle HomeとIKEAのゲートウェイがある
パソコン1つとスマホ1つゲーム1つタブレット1つぐらい
一度に接続されるの多くても4つか5つだと思う
家に光が入ってるので早いと嬉しい

19以下、名無しにかわりましてVIPがお送りします:2021/01/09(土) 00:06:05.04 ID:ks1WjXOX

1DKなら何買っても大丈夫そう

20以下、名無しにかわりましてVIPがお送りします:2021/01/09(土) 01:17:13.77 ID:ff7lnvZd

WHR-1166DHP2はもう限界だと思ってる

21以下、名無しにかわりましてVIPがお送りします:2021/01/12(火) 16:32:36.63 ID:uQPcFWxK

あるタグ部分だけ非表示にしたいのにすっごい難しいねこれ
なんでこんな簡単なことできないんだ悔しい

22以下、名無しにかわりましてVIPがお送りします:2021/01/12(火) 17:58:40.84 ID:hgIqnhbR

css ですぐ終わることでは

23以下、名無しにかわりましてVIPがお送りします:2021/01/12(火) 18:01:41.57 ID:uQPcFWxK

!!
なるほど…
名前もクラスもなくて悩んでて
タグの中にtype=‘hidden’入れようともがいて
Xpathの指定もしたところで詰んでたよ
そうすればいいのか…試してみよう

24以下、名無しにかわりましてVIPがお送りします:2021/01/12(火) 18:17:32.09 ID:hgIqnhbR

よくわからんが javascript を注入して消したいだけなら
document.querySelector("body > div:nth-of-type(4) > div:nth-of-type(2)").style.setProperty("display", "none", "");
(body の中の 4 番目の div の中の 2 番目の div のスタイルに display: none を追加)
みたいにすればいいだけだぞ

25以下、名無しにかわりましてVIPがお送りします:2021/01/12(火) 18:24:22.26 ID:uQPcFWxK

クエリセレクターがそういう使い方なの!?
絶対簡単にできると思ってたけどなかなか探しても見つからなかったんだ…
Getelementbyxpathの作り方ばかり注目していたかもしれない

26以下、名無しにかわりましてVIPがお送りします:2021/01/13(水) 10:33:28.18 ID:jvqxwJDl

プログラミング、スランプなのか
構造や分析はできるけど
「これをやる」っていう実行ってどうやるんだっけ?って全てを忘れかけてしまってる
覚えてるのはprintだけ
あっプリンタ起動した


このスレッドは過去ログです。