Hướng dẫn can python call javascript function? - python có thể gọi chức năng javascript không?

Tôi đang làm việc trong một dự án xẹp web. Một trong những trang web tôi đang làm việc có dữ liệu đến từ JavaScript.

Có một gợi ý về một trong những câu hỏi trước đây của tôi mà tôi có thể gọi trực tiếp JavaScript từ Python, nhưng tôi không chắc làm thế nào để thực hiện điều này.

Ví dụ: Nếu hàm JavaScript được xác định là:

add2 = js.callable('add2')
val = add2(var1, var2)
0

Làm thế nào tôi có thể gọi đó là chức năng JavaScript từ Python?

Hướng dẫn can python call javascript function? - python có thể gọi chức năng javascript không?

Stevoisiak

21.5K26 Huy hiệu vàng118 Huy hiệu bạc208 Huy hiệu đồng26 gold badges118 silver badges208 bronze badges

Đã hỏi ngày 27 tháng 11 năm 2011 lúc 10:02Nov 27, 2011 at 10:02

Hướng dẫn can python call javascript function? - python có thể gọi chức năng javascript không?

1

Tìm một thông dịch viên JavaScript có ràng buộc Python. (Hãy thử Rhino? V8? Seamonkey?). Khi bạn đã tìm thấy một, nó sẽ đi kèm với các ví dụ về cách sử dụng nó từ Python.

Tuy nhiên, bản thân Python không bao gồm một thông dịch viên JavaScript.

Đã trả lời ngày 27 tháng 11 năm 2011 lúc 10:31Nov 27, 2011 at 10:31

Hướng dẫn can python call javascript function? - python có thể gọi chức năng javascript không?

2

Một giải pháp thay thế thú vị mà tôi phát hiện gần đây là mô -đun trái phiếu Python, có thể được sử dụng để giao tiếp với quy trình NodeJS (động cơ V8).

Việc sử dụng sẽ rất giống với các ràng buộc PYV8, nhưng bạn có thể trực tiếp sử dụng bất kỳ thư viện NodeJS nào mà không cần sửa đổi, đây là một điểm bán hàng chính cho tôi.

Mã Python của bạn sẽ trông như thế này:

val = js.call('add2', var1, var2)

hoặc thậm chí:

add2 = js.callable('add2')
val = add2(var1, var2)

Các chức năng gọi mặc dù chắc chắn chậm hơn PYV8, vì vậy nó phụ thuộc rất nhiều vào nhu cầu của bạn. Nếu bạn cần sử dụng gói

add2 = js.callable('add2')
val = add2(var1, var2)
1 có nhiều thứ nặng,
add2 = js.callable('add2')
val = add2(var1, var2)
2 là tuyệt vời. Bạn thậm chí có thể có nhiều quy trình NodeJS chạy song song.

Nhưng nếu bạn chỉ cần gọi một loạt các hàm JS (ví dụ, để có cùng một chức năng xác thực giữa trình duyệt/phụ trợ),

add2 = js.callable('add2')
val = add2(var1, var2)
3 chắc chắn sẽ nhanh hơn rất nhiều.

Đã trả lời ngày 13 tháng 9 năm 2014 lúc 16:07Sep 13, 2014 at 16:07

Cuối cùng, bạn có thể nhận JavaScript từ trang và thực hiện nó thông qua một số trình thông dịch (chẳng hạn như V8 hoặc Rhino). Tuy nhiên, bạn có thể nhận được kết quả tốt theo cách dễ dàng hơn bằng cách sử dụng một số công cụ kiểm tra chức năng, chẳng hạn như selen hoặc splinter. Các giải pháp này khởi chạy trình duyệt và tải trang hiệu quả - nó có thể chậm nhưng đảm bảo rằng nội dung hiển thị trình duyệt dự kiến ​​sẽ có sẵn.

Ví dụ, hãy xem xét tài liệu HTML bên dưới:


    
        Test
        
    
    
        

The element below will receive content

Kịch bản dưới đây sẽ sử dụng splinter. Splinter sẽ khởi chạy Firefox và sau khi tải hoàn chỉnh của trang, nó sẽ nhận được nội dung được thêm vào Div bởi JavaScript:

from splinter.browser import Browser
import os.path

browser = Browser()
browser.visit('file://' + os.path.realpath('test.html'))
elements = browser.find_by_css("#mydiv")
div = elements[0]
print div.value

browser.quit()

Kết quả sẽ là nội dung được in trong stdout.

Hướng dẫn can python call javascript function? - python có thể gọi chức năng javascript không?

c24b

4.9815 Huy hiệu vàng26 Huy hiệu bạc35 Huy hiệu Đồng5 gold badges26 silver badges35 bronze badges

Đã trả lời ngày 3 tháng 12 năm 2011 lúc 3:38Dec 3, 2011 at 3:38

Brandizzibrandizzibrandizzi

25.5K7 Huy hiệu vàng100 Huy hiệu bạc151 Huy hiệu Đồng7 gold badges100 silver badges151 bronze badges

1

Bạn có thể gọi nút thông qua popen.

Ví dụ của tôi làm thế nào để làm điều đó

print execute('''function (args) {
    var result = 0;
    args.map(function (i) {
        result += i;
    });
    return result;
}''', args=[[1, 2, 3, 4, 5]])

Đã trả lời ngày 29 tháng 9 năm 2015 lúc 21:32Sep 29, 2015 at 21:32

Hướng dẫn can python call javascript function? - python có thể gọi chức năng javascript không?

Muỗimosquito

1521 Huy hiệu bạc7 Huy hiệu đồng1 silver badge7 bronze badges

1

Xin chào, một giải pháp khả thi sẽ là sử dụng Ajax với bình để kết hợp giữa JavaScript và Python. Bạn sẽ chạy một máy chủ bằng bình và sau đó mở trang web trong trình duyệt. Bằng cách này, bạn có thể chạy các chức năng JavaScript khi trang web được tạo thông qua Pythoncode hoặc bằng một nút làm thế nào nó được thực hiện trong ví dụ này.

Mã HTML:











 


Mã Python:

from flask import Flask, jsonify, render_template, request

app = Flask(__name__)


def load_file(file_name):
    data = None
    with open(file_name, 'r') as file:
        data = file.read()
    return data

@app.route('/pycall')
def pycall():
    content = request.args.get('content', 0, type=str)
    
    print("call_received",content)
    return jsonify(result="data from python")

@app.route('/')
def index():
    return load_file("basic.html")



import webbrowser
print("opening localhost")
url = "http://127.0.0.1:5000/"
webbrowser.open(url)
app.run()

đầu ra trong Python:

add2 = js.callable('add2')
val = add2(var1, var2)
4

cảnh báo trong trình duyệt:

add2 = js.callable('add2')
val = add2(var1, var2)
5

Đã trả lời ngày 22 tháng 7 năm 2021 lúc 11:23Jul 22, 2021 at 11:23

Điều này đã làm việc cho tôi cho tệp JS đơn giản, Nguồn: https://www.geeksforgeek.org/how-to-run-javascript-from-python/

pip install js2py
pip install temp

add2 = js.callable('add2')
val = add2(var1, var2)
6

import js2py
eval_res, tempfile = js2py.run_file("scripts/dev/test.js")
tempfile.wish("GeeksforGeeks")

add2 = js.callable('add2')
val = add2(var1, var2)
7

function wish(name) {
    console.log("Hello, " + name + "!")
}

user11717481

1.3247 Huy hiệu vàng14 Huy hiệu bạc23 Huy hiệu đồng7 gold badges14 silver badges23 bronze badges

Đã trả lời ngày 3 tháng 2 lúc 2:25Feb 3 at 2:25

Hướng dẫn can python call javascript function? - python có thể gọi chức năng javascript không?

Đã làm toàn bộ các phương pháp khác nhau gần đây.

Pyqt4 node.js/zombie.js Phantomjs

Phantomjs là người chiến thắng, rất đơn giản với nhiều ví dụ.

Đã trả lời ngày 18 tháng 4 năm 2015 lúc 8:30Apr 18, 2015 at 8:30

fragefragefrage

6817 Huy hiệu bạc15 Huy hiệu Đồng7 silver badges15 bronze badges

1

Python và JavaScript có thể làm việc cùng nhau không?

Nó có thể được sử dụng để phát triển máy tính để bàn cũng như các ứng dụng web.Q #5) Tôi có thể học JavaScript và Python cùng một lúc không?Trả lời: Có, cả JavaScript và Python đều có thể được học cùng một lúc.JavaScript chủ yếu được sử dụng để lập trình mặt trước trong khi Python được sử dụng để lập trình phụ trợ.Yes, Javascript and Python can both be learned at the same time. Javascript is mainly used for front-end programming whereas Python is used for backend programming.

Chức năng JavaScript trong Python là gì?

Trong Python, một chức năng là một nhóm các tuyên bố liên quan thực hiện một nhiệm vụ cụ thể.Các chức năng giúp phá vỡ chương trình của chúng tôi thành các khối nhỏ hơn và mô -đun.Khi chương trình của chúng tôi phát triển lớn hơn và lớn hơn, các chức năng làm cho nó được tổ chức và quản lý hơn.Hơn nữa, nó tránh được sự lặp lại và làm cho mã có thể tái sử dụng.a group of related statements that performs a specific task. Functions help break our program into smaller and modular chunks. As our program grows larger and larger, functions make it more organized and manageable. Furthermore, it avoids repetition and makes the code reusable.