วิธีการแทนที่ค่า JavaScript ด้วย greasemonkey?


2

ฉันมักจะต้องไปที่เว็บไซต์:

https://xyz.asd.com/maximo/ui/maximo.jsp?sc=4325286581&event=loadapp&value=incident

ที่มีบรรทัดต่อไปนี้ในมันเป็นรหัส HTML:

SESSION_TIMEOUT = 1800;//in seconds.

ฉันต้องเปลี่ยนสายนี้เป็นอดีต:

SESSION_TIMEOUT = 1800000;//in seconds.

Greasmonkey สามารถทำได้ แต่อย่างไร ฉันเก็บ googling ไว้หลายชั่วโมง แต่บรรทัดเดิมไม่ถูกแตะต้อง ... ใครช่วยฉันได้บ้าง


SESSION_TIMEOUT เป็นตัวแปร JavaScript ทั่วโลกหรือไม่
cmorse

@cmorse - ฉันคิดว่ามันเป็นความรับผิดชอบของหน้าเว็บที่จะหมดเวลา / ออกจากระบบผู้ใช้ที่เข้าสู่ระบบ
LanceBaynes

@ LanceBaynes - ฉันคิดว่าถ้ามันเป็นเพียงตัวแปร JavaScript คุณก็สามารถตั้งค่าเป็นค่าที่ต้องการด้วยสคริปต์ greasemonkey
cmorse

@ LanceBaynes: คุณควรมองหาโซลูชันเฉพาะเบราว์เซอร์เพื่อเข้าถึงบริบทหน้าต่างต้นฉบับซึ่งอาจแตกต่างกันระหว่างเบราว์เซอร์ อาจเป็นไปได้ว่าการหมดเวลาเซสชันนั้นบังคับให้คุณอย่างใดอย่างหนึ่ง (อาจเป็นการจับเวลาหรือการโทร AJAX) ซึ่งในกรณีนี้คุณจะไม่สามารถเปลี่ยนแปลงได้ นอกจากนี้โปรดทราบว่าการเปลี่ยนการหมดเวลาฝั่งไคลเอ็นต์จะไม่กำหนดการเปลี่ยนแปลงการหมดเวลาฝั่งเซิร์ฟเวอร์ ...
Tamara Wijsman

ทำไมคุณไม่เปลี่ยนการหมดเวลาเซสชันในแอปพลิเคชัน Maximo หากคุณใช้ LDAP นอกจากนี้ยังมีโทเค็น LDAP ที่หมดอายุซึ่งแยกออกจากการหมดเวลาเซสชันหากคุณใช้แอปพลิเคชันเซิร์ฟเวอร์ WebSphere
อาทิตย์

คำตอบ:


2
// ==UserScript==
// @name          Script Name Here
// @namespace     http://www.site.com/your-personal-namespace
// @description   An Greasemonkey script that changes the session timeout value
// @include       https://xyz.asd.com
// ==/UserScript==
window.SESSION_TIMEOUT = 1800000;

?


อันนี้ก็ใช้งานไม่ได้ด้วย: \
LanceBaynes

คุณสามารถให้รายละเอียดเพิ่มเติมได้หรือไม่ คุณตรวจสอบว่ามันใช้งานไม่ได้อย่างไร - คุณเคยใช้ตัวอย่างเช่นคอนโซล javascript เพื่อตรวจสอบว่าตัวแปรมีการเปลี่ยนแปลงหรือไม่? มีข้อผิดพลาดหรือไม่?
eis

รุ่นที่มี unsafeWindow ควรใช้งานได้ ฉันดูเหมือนจะไม่ได้ แต่ไม่สามารถแสดงความคิดเห็นได้ดังนั้นจึงมีความคิดเห็นที่นี่ แต่โปรดเพิ่มรายละเอียดเพิ่มเติมว่าทำไมจึงไม่ทำงาน
eis

@eis: windowไม่ให้สิทธิ์การเข้าถึงเต็มที่unsafeWindowขึ้นอยู่กับเบราว์เซอร์
Tamara Wijsman

2

คุณจะต้องการใช้unsafeWindowซึ่งเป็นชื่อ infers ไม่ใช่วิธีที่ปลอดภัยที่สุด - แต่ถ้าสิ่งที่คุณทำคือการเปลี่ยนค่าของตัวแปรตามหน้าจะไม่มีความเสี่ยง

// ==UserScript==
// @name          Script Name Here
// @namespace     http://www.site.com/your-personal-namespace
// @description   An Greasemonkey script that changes the session timeout value
// @include       https://xyz.asd.com
// ==/UserScript==

unsafeWindow.SESSION_TIMEOUT = 1800000;

หากคุณใช้เพียงอย่างเดียวwindow.SESSION_TIMEOUTคุณจะไม่สามารถเข้าถึงขอบเขตที่ถูกต้องได้และSESSION_TIMEOUTตัวแปรของคุณจะไม่ได้รับการแก้ไขและสร้างขึ้นใหม่ภายในบริบท / ขอบเขตอื่น


มันใช้งานไม่ได้ขอโทษ: \
LanceBaynes

@lawrencealan: unsafeWindowขึ้นอยู่กับเบราว์เซอร์
Tamara Wijsman

@TomWijsman คุณเห็นว่าunsafeWindowเบราว์เซอร์นั้นขึ้นอยู่กับอะไร? มันเป็นความเข้าใจของฉันว่ามันถูกนำมาใช้ในปลั๊กอิน GreaseMonkey ...
L422Y

@ LanceBaynes ลองใช้ตัวจับเวลาฉันมีความรู้สึกว่าค่าถูกเขียนทับเนื่องจากคำสั่งของการรวม แต่ฉันอาจจะผิด
L422Y

1
@TomWijsman Greasemonkey เป็นทางการเพียงส่วนขยายสำหรับ Mozilla Firefox เบราว์เซอร์อื่นไม่รับประกันว่าจะทำงาน
L422Y

0

ดีมาก

location.href="javascript:(function(){ window.SESSION_TIMEOUT = 1800000; })()"

เคล็ดลับควรทำงาน


ฉันจะถามวิธีการใช้สิ่งนี้ได้อย่างไร เพื่อ userscript ??
LanceBaynes

ฉันลองมันใน userscript มันไม่ได้ผลเช่นกัน: D: เครื่องมือ Maximo อาจจะมาจากสิ่งที่แทนที่สิ่งนี้ ... มันเป็นเรื่องผิดปกติสำหรับฉัน ...
LanceBaynes

@LanceBaynes: แม้ว่ารหัสของฉันควรจะทำงานที่นี่เป็น Q & A อธิบายเคล็ดลับนี้และเคล็ดลับอื่น ฉันใช้เคล็ดลับสคริปต์ก่อนหน้านี้เช่นเดียวกับเคล็ดลับที่ตั้งและที่ฉันพูดถึง หากไม่มีงานเหล่านี้คุณก็ไม่สามารถทำอะไรกับค่านั้นได้ มันก็อาจจะเพื่อให้ค่าที่ถูกใช้เพียงเพื่อเริ่มจับเวลาและต่อมาไม่ได้ใช้อีกต่อไปในทางใดทางหนึ่ง ...
Tamara Wijsman
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.